home *** CD-ROM | disk | FTP | other *** search
/ Die Ultimative Software-P…i Collection 1996 & 1997 / Die Ultimative Software-Pakete CD-ROM fur Atari Collection 1996 & 1997.iso / d / dateiver / cia1_10 / cia.asc next >
Encoding:
Text File  |  1996-09-18  |  89.7 KB  |  1,934 lines

  1.                                CIA
  2.                       Cellular InterActions
  3.  
  4.  
  5.                 Ein Tabellenkalkulationsprogramm
  6.  
  7.  
  8.                           Dokumentation
  9.  
  10.                  Fertiggestellt am 27. Nov. 1991
  11.  
  12.                    Programm und Dokumentation
  13.                    (c) 1991 by Michael Marte.
  14.  
  15.  
  16.  
  17.  
  18.  
  19.                        CIA ist Shareware !
  20.  
  21.  
  22.                               INHALTSVERZEICHNIS
  23.  
  24.  1. VORBEMERKUNGEN
  25.  
  26.  1. 1. Begriffsvereinbarungen
  27.  1. 2. Bereichswahl
  28.  
  29.  2. DAS 'DATEI'-MENUE
  30.  
  31.  2. 1. Arbeitsblatt öffnen (F1)
  32.        Darstellung des Arbeitsblattes
  33.  2. 2. Arbeitsblatt schließen (F2)
  34.  2. 3. Arbeitsblatt sichern (F3)
  35.  2. 4. Bereich schreiben
  36.  2. 5. Daten lesen (F3)
  37.  2. 6. Directory
  38.  2. 7. Datei löschen
  39.  2. 8. Datei umbenennen
  40.  2. 9. Programm starten
  41.  2.10. Programm beenden (CONTROL + Q)
  42.  
  43.  3. DAS 'DRUCKER'-MENUE
  44.  
  45.  3. 1. Bereich drucken (F5)
  46.        Aufteilung des Bereichs
  47.        Rand, Spalten- und Zeilenindizes
  48.        Druckvorgang bei Verwendung von Einzelpapier
  49.        Druckvorgang bei Verwendung von Endlospapier
  50.        Ende des Druckvorgangs
  51.  3. 2. Konfiguration erstellen
  52.        Aufbau der Quelldatei
  53.  3. 3. Neue Konfiguration laden
  54.  3. 4. Voreinstellungen editieren
  55.  3. 5. Voreinstellungen laden
  56.  3. 6. Voreinstellungen speichern
  57.  
  58.  4. DAS 'BEARBEITEN'-MENUE
  59.  
  60.  4. 1. Arbeitsblattdarstellung definieren
  61.  4. 2. Zahlendarstellung definieren
  62.  4. 3. Spaltenbreite definieren
  63.  4. 4. Zeilenhöhe definieren
  64.  4. 5. Cursor setzen (F6)
  65.  4. 6. Zelle editieren (F7)
  66.        Das Eingabefenster
  67.        Die Eingabemodi
  68.        Aktivierung des Eingabefensters
  69.        Der Zellentyp
  70.        Die Schriftattribute
  71.        Die Schriftfarbe
  72.        Die Ausgabeformatierung
  73.        Die Zellenbegrenzungen
  74.        Die Sichtbarkeit
  75.        Der Löschschutz
  76.        Abschluß der Eingabe
  77.        MATHEMATISCHE AUSDRÜCKE
  78.        Liste der Operanden
  79.        1. Konstanten
  80.        2. Direkter Zellenzugriff
  81.        3. Zellenzugriff mittels Benennungen
  82.        4. Zugriff auf andere Arbeitsblätter
  83.        5. Funktionen
  84.        6. Klammernausdrücke
  85.        Vorzeichen
  86.        Operatoren
  87.        Der Stack
  88.        Fehlermeldungen im Arbeitsblatt
  89.        Rechen(un)genauigkeit
  90.        Definitionsbereiche
  91.  4. 7. Löschen (CONTROL + K)
  92.  4. 8. Benennen (CONTROL+N)
  93.  4. 9. Durchrechnen (F8)
  94.  4.10. Nachberechnung (F9)
  95.  4.11. Iterationen (CONTROL + I)
  96.        Internas
  97.        Beeinflussung der Geschwindigkeit
  98.        Rekursion
  99.  4.12. Suchen (CONTROL + F)
  100.        Der Suchvorgang
  101.  4.13. Erneut suchen (CONTROL + A)
  102.  4.14. Fehler zeigen (CONTROL + D)
  103.  
  104.  5. DAS 'BLOCK'-MENUE
  105.  
  106.        Zur Blockdefinition und -darstellung
  107.        Blockdefinition per Maus
  108.        Blockdefinition per Tastatur
  109.  5. 1. Bereich -> Block (F10)
  110.  5. 2. Blockstart definieren (CONTROL + S)
  111.  5. 3. Blockende definieren (CONTROL + E)
  112.  5. 4. Demarkieren (CONTROL + H)
  113.  5. 5. Kopieren (CONTROL + C)
  114.  5. 6. Kopieren nach (ALTERNATE + C)
  115.  5. 7. Verschieben (CONTROL + M)
  116.  5. 8. Verschieben nach (ALTERNATE + M)
  117.  5. 9. Bearbeiten (CONTROL + W)
  118.  
  119.  6. DIE CURSORSTEUERUNG
  120.  
  121.  6. 1. Cursorsteuerung per Maus
  122.  6. 2. Cursorsteuerung per Tastatur
  123.  
  124.  7. WEITERE MAUSKOMMANDOS
  125.  
  126.  7. 1. Zelle kopieren
  127.  7. 2. Zelle verschieben
  128.  7. 3. Zelle löschen
  129.  7. 4. Zelle durchrechnen
  130.  
  131.  8. TIP(S) & TRICK(S)
  132.  
  133.  8. 1. Arbeitsblattgröße verändern
  134.  
  135.  9. FEHLER UND FEHLERMELDUNGEN
  136.  
  137.  9. 1. Allgemeines
  138.  9. 2. Liste der Fehlermeldungen
  139.  
  140. 10. INTERNAS
  141.  
  142. 10. 1. Dateikennungen
  143. 10. 2. Versionsnummern
  144. 10. 3. Konfiguration und Programmstart
  145. 10. 4. Datenformate
  146.        Header für alle Systemdateien
  147.        Das Arbeitsblatt-Format
  148.        Das Block-Format
  149.        Das Konfigurations-Format
  150.        Das Druckervoreinstellungs-Format
  151.        Das DIF-Format
  152.        Das CVS-Format
  153.  
  154. 11. LISTE DER FUNKTIONEN
  155.  
  156. 11. 1. Exponential- und Logarithmusfunktionen
  157. 11. 2. Trigonometrische Funktionen
  158. 11. 3. Sonstige mathematische Funktionen
  159. 11. 4. Rundungsfunktionen
  160. 11. 5. Logische Funktionen
  161. 11. 6. Konstanten
  162. 11. 7. Statistikfunktionen
  163. 11. 8. Arbeitsblattfunktionen
  164. 11. 9. Sonstige nicht-mathematische Funktionen
  165.  
  166. 12. LISTE DER OPERATOREN
  167.  
  168. 12. 1. Logische Operatoren (Priorität 1)
  169. 12. 2. Vergleichsoperatoren (Priorität 2)
  170. 12. 3. Addition und Subtraktion (Priorität 3)
  171. 12. 4. Multiplikation und Division (Priorität 4)
  172. 12. 5. Potenzierung (Priorität 5)
  173.  
  174. 1. VORBEMERKUNGEN
  175.  
  176.  1. 1. Begriffsvereinbarungen
  177.        Im folgenden Text ist mit aktueller Zelle immer die Zelle  gemeint,  in 
  178.        der  der Cursor steht.  Korrespondierend dazu werden auch die  Begriffe 
  179.        aktuelle Spalte und aktuelle Zeile verwendet.
  180.        Mit dem aktuellen Arbeitsblatt ist immer das Arbeitsblatt gemeint,  bei 
  181.        dem die Randelemente des Fensters aktiviert sind.
  182.        Unter  dem  Begriff Struktur des Arbeitsblattes ist  das  Ergebnis  der 
  183.        geplanten Unterteilung des Arbeitsblattes  und der Festlegung der Größe 
  184.        einzelner Zellen zu verstehen.
  185.  
  186.  1. 2. Bereichswahl
  187.        Viele Funktionen des Programms benötigen eine nähere Spezifikation  des 
  188.        zu  bearbeitenden  Bereiches.  Diese  kann  immer  in  einer  Dialogbox 
  189.        vorgenommen werden.  Es werden überall die gleichen Abkürzungen verwen-
  190.        det. Hier nun die die sechs implementierten Bereiche :
  191.  
  192.        AB        Alle Zellen im Arbeitsblatt sollen bearbeitet werden.
  193.        BLOCK     Alle Zellen im Block sollen bearbeitet werden. Ist kein Block 
  194.                  definiert,  so wird bei Anwahl dieses Bereiches eine  Fehler-
  195.                  meldung ausgegeben.
  196.        DISP.     (Display)  Alle  Zellen im gerade angezeigten  Auschnitt  des 
  197.                  Arbeitsblattes sollen bearbeitet werden.
  198.        SPALTE    Alle  Zellen,  die  sich in der  aktuellen  Spalte  befinden, 
  199.                  sollen bearbeitet werden.
  200.        ZEILE     Alle  Zellen,  die  sich  in der  aktuellen  Zeile  befinden, 
  201.                  sollen bearbeitet werden.
  202.        ZELLE     Nur die aktuelle Zelle soll bearbeitet werden.
  203.  
  204.  2. DAS 'FILE'-MENUE
  205.  
  206.  2. 1. Arbeitsblatt öffnen (F1)
  207.        Nach Wahl des Dateilaufwerks, -pfades und -namens wird das Arbeitsblatt 
  208.        geladen und geöffnet.
  209.        Existiert das Arbeitsblatt noch nicht,  so erscheint eine Dialogbox zur 
  210.        Erstellung eines neuen Arbeitsblattes. In dieser können die Dimensionen  
  211.        des Arbeitsblattes (max.  8192*8192 Zellen),  die Breite  und die  Höhe  
  212.        für alle Zellen (je max.  255 Zeichen bzw.  Zeilen) und die Anzahl  der 
  213.        Nachkommastellen  (max.  10) für alle Spalten vordefiniert  werden.  Es 
  214.        können max. vier Arbeitsblätter geöffnet werden.
  215.  
  216.        Darstellung des Arbeitsblattes :
  217.        Am  oberen Rand der Arbeitsfläche des Fensters werden die  Spaltenindi-
  218.        zes,  am linken Rand die Zeilenindizes dargestellt.  Die Zellen  werden 
  219.        durch gepunktete Linien getrennt gezeichnet.  Die Linien werden in  der 
  220.        Schriftfarbe der jeweiligen Zelle (s. bei 'Editieren') dargestellt.
  221.  
  222.  2. 2. Arbeitsblatt schließen (F2)
  223.        Nach einer Sicherheitsabfrage wird das aktuelle Arbeitsblatt  geschlos-
  224.        sen.
  225.        HINWEIS :
  226.        Das Arbeitsblatt wird nicht abgespeichert !
  227.  
  228.  2. 3. Arbeitsblatt sichern (F3)
  229.        Das  aktuelle  Arbeitsblatt wird unter dem in der Titelzeile  des  Fen-
  230.        sters aufscheinenden Dateinamen gesichert.
  231.  
  232.  2. 4. Bereich schreiben
  233.        Nach  Anwahl dieser Funktion erscheint eine Dialogbox,  in der  der  zu 
  234.        schreibende Bereich und das hierbei zu verwendende Datenformat bestimmt 
  235.        werden  können.  Nach Anwahl von SCHREIBEN kann in der  File-Select-Box 
  236.        der  Dateipfad,  der Dateiname und das Laufwerk,  auf  das  geschrieben 
  237.        werden soll, angegeben werden.
  238.  
  239.        Folgende Formate sind implementiert :
  240.  
  241.        CT   Der  angegebene  Bereich wird als Arbeitsblatt  abgespeichert  und 
  242.             kann  später  als  solches wieder  geladen  werden.  Dabei  werden 
  243.             folgende Zusatzinformationen mitgespeichert :
  244.             - Die aktuelle Zelle.
  245.             - Die Zahlendarstellung (s. bei 'Zahlendarstellung definieren').
  246.             - Die eingestellte Schriftgröße und welche Begrenzungen gezeichnet 
  247.               werden sollen (s. bei 'Arbeitsblatt-Darstellung definieren').
  248.             - Ob nach Eingaben eine automatische Nachberechnung erfolgen  soll 
  249.               und der dabei zu bearbeitende Bereich (s. bei 'Nachberechnung').
  250.             - Die Iterationstiefe (s. bei 'Iterationen').
  251.             - Der Blockstart und das Blockende (s. bei 'Block definieren').
  252.             - Die Benennungen (s. bei 'Benennen').
  253.  
  254.             Wird nur ein Teil des Arbeitsblattes im CT-Format geschrieben, so
  255.             - wird als aktuelle Zelle die Zelle [1,1] gesetzt.
  256.             - wird die Nachberechnung automatisch abgeschaltet.
  257.             - werden keine Blockinformationen gespeichert.
  258.             - werden keine Benennungen gespeichert.
  259.  
  260.        BLK  Der  angegebene Bereich wird im Block-Format gespeichert und  kann 
  261.             später  an  eine andere Stelle oder in  ein  anderes  Arbeitsblatt 
  262.             wieder  eingelesen  werden,  alle bei  der  Eingabe  vorgenommenen 
  263.             Einstellungen,  z.B.  Schriftstil,  Textausrichtung,  usw. bleiben 
  264.             erhalten. Es werden keine Zusatzinformationen gespeichert.
  265.  
  266.        ASC  Der  angegebene  Bereich wird in die angegebene  Datei  im  ASCII-
  267.             Format 'gedruckt'.  Dabei werden bestimmte Druckervoreinstellungen 
  268.             mitberücksichtigt, nämlich der 'Papiertyp (Einzel-/Endlospapier)', 
  269.             Seitenbreite  und -höhe,  Zwischenleerzeilen (bei  'Endlospapier') 
  270.             und  ob Spalten-/Zeilenindizes geschrieben  werden  sollen.  Damit 
  271.             läßt sich die Ausgabe sehr schön formatieren,  z.B. zur Weiterver-
  272.             arbeitung  in einer Textverarbeitung.  Zur Seitenaufteilung  siehe 
  273.             bei 'Arbeitsblatt drucken'.
  274.  
  275.        DIF  Der angegebene Bereich wird im DIF-Format geschrieben.  Das bedeu-
  276.             tet konkret,  daß Strings wie eingegeben geschrieben  werden.  Bei 
  277.             Zellen  mit mathematischen Inhalt wird entweder das Ergebnis  oder 
  278.             der Ausdruck  (s.  bei 'Zahlendarstellung definieren'), bei Trenn-
  279.             zellen eine die Zelle ausfüllende Zeichenkette geschrieben.
  280.             Dieses Format kann von vielen Programmen geladen werden (auch  von 
  281.             CIA),  somit  steht  einem Datenaustausch mit  anderen  Programmen 
  282.             nichts  im  Wege.  Der  Nachteil  dieses  Formates  ist  der,  daß 
  283.             Datensätze  nicht  von einander getrennt werden  können,  da  eine 
  284.             hierfür  notwendige Markierung bei diesem Format nicht  vorgesehen 
  285.             ist.
  286.  
  287.        CVS  Der  angegebene Bereich wird im CVS-Format  geschrieben,  wie  was 
  288.             geschrieben wird, s. beim DIF-Format.
  289.             Auch  dieses  Format kann von vielen  anderen  Programmen  gelesen 
  290.             werden.  Dabei  besteht  allerdings nicht der  Nachteil  des  DIF-
  291.             Formates,  Datensätze,  oder in diesem Falle Zeilen,  können  pro-
  292.             blemlos voneinander getrennt werden.
  293.  
  294.  2. 5. Daten lesen (F4)
  295.        Nach  Anwahl dieser Funktion erscheint eine Dialogbox,  in der  das  zu 
  296.        lesende  Datenformat  bestimmt werden kann.  Will  man  eine  DIF-Datei 
  297.        laden,  so  muß  zusätzlich die Anzahl  der Datenfelder  pro  Datensatz 
  298.        angegeben  werden,  damit  läßt  sich das  oben  erwähnte  Problem  der 
  299.        fehlenden Markierung für Datensatzenden lösen.  Als Feature beim  Laden 
  300.        von  DIF-  und  CVS-Dateien besteht  zusätzlich  noch  die  Möglichkeit 
  301.        festzulegen, ob gelesene Datenfelder, falls möglich, tokenisiert werden 
  302.        sollen.  Hierbei  ist  die Option MIT  EDITIEREN  hervorzuheben  :  Sie 
  303.        erlaubt  das  Editieren von Datenfeldern,  die  als  Ausdrücke  erkannt 
  304.        wurden, während des Lesevorgangs (mehr s. unten). Nach Anwahl von LESEN 
  305.        kann  in  der  File-Select-Box der Dateipfad,  der  Dateiname  und  das 
  306.        Laufwerk, von dem gelesen werden soll, angegeben werden.
  307.  
  308.        Folgende Formate sind implementiert :
  309.  
  310.        CT   Nach  einer  Sicherheitsabfrage wird das  angegebene  Arbeitsblatt 
  311.             geladen.  Dabei wird das aktuelle Arbeitsblatt  überschrieben.  In 
  312.             dieser  Programmversion  werden bis auf  die  Cursorposition  alle 
  313.             gespeicherten Zusatzinformationen beachtet.
  314.             HINWEIS :
  315.             Konnte  das Arbeitsblatt nicht geladen werden  (Ladefehler,  Spei-
  316.             chermangel),  so  wird das alte Arbeitsblatt  geschlossen,  da  zu 
  317.             diesem Zeitpunkt bereits einige Daten überschrieben sind.
  318.  
  319.        BLK  Der Block in der angegebenen Datei wird ab der  Cursorposition  in 
  320.             das Arbeitsblatt eingelesen,  die Struktur desselben bleibt  dabei 
  321.             unverändert.
  322.             HINWEISE :
  323.             Der Block muß ins Arbeitsblatt passen.
  324.             Der Inhalt geschützter Zellen wird nicht verändert,  die  gelesene 
  325.             Zelle wird einfach vergessen.
  326.  
  327.        ASC  Dieses Format kann nicht gelesen werden.
  328.  
  329.        DIF  Die  Daten aus der angegebenen Datei werden ab der  Cursorposition 
  330.             wie ein Block in das Arbeitsblatt eingelesen,  am Ende eines jeden 
  331.             Datensatzes  wird ein Zeilensprung durchgeführt.  Nach  dem  Lesen 
  332.             eines  Datenfeldes wird,  falls  gewünscht,  versucht,  dieses  zu 
  333.             tokensieren,  d.h.  es wird überprüft,  ob das Feld einen mathema-
  334.             tischen Ausdruck enthält.  Ist dies der Fall, so wird der Ausdruck 
  335.             berechnet,  das Ergebnis wird rechtsbündig dargestellt.  Wurde die 
  336.             Option  MIT EDITIEREN gewählt,  so wird jetzt  das  Eingabefenster 
  337.             aktiviert,  und das Datenfeld kann editiert werden.  Somit ist  es  
  338.             z.B.  möglich zu verhindern,  daß Nummerierungen innerhalb des Ar- 
  339.             beitsblattes ungewollt als Zahlen mit Nachkommastellen  ausgegeben 
  340.             werden.  Dazu muß lediglich der Zellentyp geändert werden, es sind 
  341.             aber auch alle anderen Operationen möglich (s.  bei  'Editieren'). 
  342.             Wurde die Eingabe abgeschlossen,  so wird das Eingabefenster deak-
  343.             tiviert  und  der Lesevorgang wird fortgesetzt.  Konnte  das  Feld 
  344.             nicht tokenisiert werden,  so wird es als String abgespeichert und 
  345.             linksbündig  dargestellt.  Aber auf jeden Fall werden alle  einge-
  346.             stellten  Schriftattribute  gelöcht,  als  Schriftfarbe  wird  die 
  347.             Farbe  1  gesetzt.  Die  Struktur des  Arbeitsblattes  wird  nicht 
  348.             verändert.
  349.             HINWEISE :
  350.             Der Inhalt geschützter Zellen wird nicht verändert,  das  gelesene 
  351.             Datenfeld wird einfach vergessen.
  352.             Der Lesevorgang wird abgebrochen, wenn
  353.             - die  letzte  Zelle einer Zeile erreicht ist  und  ein  Datensatz 
  354.               noch nicht komplett gelesen werden konnte.
  355.             - die letzte Zelle der aktuellen Spalte erreicht ist und sich noch 
  356.               Datensätze in der Datei befinden.
  357.  
  358.        CVS  Die  Daten aus der angegebenen Datei werden wie ein Block  ab  der 
  359.             Cursorposition  in das Arbeitsblatt eingelesen.  Ein  Zeilensprung 
  360.             wird  immer  dann durchgeführt,  wenn das Ende  eines  Datensatzes 
  361.             erreicht  ist.  Wie was verarbeitet wird und was  nicht  passieren 
  362.             darf, s. beim DIF-Format.
  363.  
  364.  2. 6. Directory
  365.  2. 7. Datei löschen
  366.  2. 8. Datei umbenennen
  367.  2. 9. Programm starten
  368.        Diese Funktionen sind in dieser Version noch nicht implementiert.
  369.  
  370.  2.10. Programm beenden (CONTROL + Q)
  371.        Nach  einer  Sicherheitsabfrage wird CIA in  Richtung  des  aufrufenden 
  372.        Programms (normalerweise der Desktop) verlassen.
  373.        HINWEIS :
  374.        Diese  Funktion  kann nur aufgerufen  werden,  wenn  kein  Arbeitsblatt 
  375.        geöffnet ist.
  376.  
  377.  3. DAS 'DRUCKER'-MENUE
  378.  
  379.  3. 1. Bereich drucken (F5)
  380.        Nach  einer  Bereichsabfrage wird der  eingestellte  Bereich  gedruckt. 
  381.        Dabei werden sämtliche Druckervoreinstellungen berücksichtigt.
  382.        HINWEIS :
  383.        Zum Drucken muß ein Treiber geladen sein.
  384.  
  385.        Aufteilung des Bereichs :
  386.        Je  nach  Papier-  und Arbeitsblattgröße muß der  Bereich  in  einzelne 
  387.        Seiten  aufgeteilt  werden.  Dies  geschieht  automatisch  während  des 
  388.        Druckvorgangs.  Die  Aufteilung erfolgt immer zuerst  in  horizontaler, 
  389.        dann in vertikaler Richtung. Es werden immer nur ganze Zellen gedruckt.
  390.        HINWEIS :
  391.        Sollte das Papierformat zu klein sein, d.h. Zellen müßten abgeschnitten 
  392.        werden, so wird der Druckvorgang abgebrochen.
  393.  
  394.        Rand, Spalten- und Zeilenindizes :
  395.        Vor  jeder Zeile wird eine definierte Anzahl von  Leerzeichen  (s.  bei 
  396.        'Druckervoreinstellungen'), und falls gewünscht, der Zeilenindex ausge-
  397.        geben.  Zu Beginn einer jeden Seite werden,  falls so eingestellt,  die 
  398.        Spaltenindizes unterstrichen ausgegeben.
  399.  
  400.        Druckvorgang bei Verwendung von Einzelpapier :
  401.        Wird Einzelpapier verwendet, so wird der Anwender vor jeder Seite (auch 
  402.        vor der Ersten !) aufgefordert, ein neues Blatt Papier einzulegen, hier 
  403.        besteht auch die Möglichkeit, den Druckvorgang abzubrechen.
  404.  
  405.        Druckvorgang bei Verwendung von Endlospapier :
  406.        Wird Endlospapier verwendet,  so wird nach jeder gedruckten Seite  eine 
  407.        definierte    Anzahl    von    Leerzeilen    ausgegeben     (s.     bei 
  408.        'Druckervoreinstellungen'),  um z.B.  die Perforation zu  überspringen. 
  409.        Der Druckvorgang kann nicht abgebrochen werden.
  410.  
  411.        Ende des Druckvorgangs :
  412.        Ist der Druckvorgang beendet, so wird der Drucker zurückgesetzt.
  413.  
  414.  3. 2. Konfiguration erstellen
  415.        Diese Funktion erstellt aus einer ASCII-Datei eine für den Druckertrei-
  416.        ber  verwendbare Datendatei.  Dies geschieht nach Wahl des  Quelldatei-
  417.        laufwerks,  -pfades und -namens,  für die Quelldatei ist die  Extension 
  418.        'HEX' vorgesehen. Die erstellte Anpassung wird unter demselben Pfad und 
  419.        Namen  wie  die Quelldatei gespeichert,  allerdings mit  der  Extension 
  420.        'CFG'. Will man diese Anpassung sofort verwenden, so muß diese erst mit 
  421.        Hilfe der Funktion 'Konfiguration laden' geladen werden.
  422.  
  423.        Aufbau der Quelldatei :
  424.        Kommentare  werden mit vorangestelltem '*'  gekennzeichnet.  Vor  jeder 
  425.        Datenzeile   muß   ein  Code  stehen,   der  den   Inhalt   der   Zeile 
  426.        'identifiziert',  die Codes von 0-31 sind für bestimmte  Steuerzeichen-
  427.        folgen  (s.  unten),  die  Codes  von 32-255 für  den  normalen  ASCII-
  428.        Zeichensatz vorgesehen.  Die Reihenfolge,  in der die Codes samt Anhang 
  429.        in dieser Datei stehen,  ist völlig belanglos.  Das Ende der Liste wird 
  430.        durch  den  Code  0  signalisiert.  Es müssen  auch  nicht  alle  Codes 
  431.        eingesetzt  werden,  der Druckertreiber wird später bei fehlendem  Code 
  432.        einfach das entsprechende ASCII-Zeichen ausgeben (z.B.  Space,  A-Z, a-
  433.        z).  Es  sollten  aber  unbedingt  alle  Steuerzeichenfolgen  definiert 
  434.        werden,  da die internen Codes,  die CIA hierfür verwendet (s.  unten), 
  435.        überhaupt  nichts mit normalerweise bei Druckern üblichen Codes zu  tun 
  436.        haben,  so  simple Dinge wie Zeilenvorschub,  etc.  würden  nicht  mehr 
  437.        funktionieren.
  438.        Alle Datenbytes innerhalb einer Datenzeile werden durch Kommata vonein-
  439.        ander getrennt.  Alle Datenangaben müssen im Hexadezimal-Format  erfol-
  440.        gen, allerdings können einzelne Zeichen auch in Hochkommata eingeschlo-
  441.        ssen werden.  Für den Escape-Code (27=$1B) kann auch 'ESC'  geschrieben 
  442.        werden.  Es  wird kein Unterschied zwischen Groß-  und  Kleinschreibung 
  443.        gemacht, außer bei den direkt als Zeichen angegebenen Codes.
  444.  
  445.        Hier ein Beispiel :
  446.  
  447.        ****** CIA - PRINTER CONFIGURATION ******
  448.  
  449.        * für den Drucker Schneider DMP-2000 *
  450.  
  451.        * An erster Stelle steht immer der Identifizierungs-Code !
  452.        01, 0D              * Carriage Return
  453.        02, 0A              * Line feed
  454.        03, 08              * Backspace
  455.        04, 0C              * Form feed
  456.        05, 07              * Bleeper
  457.        06, ESC, '@'        * Printer Reset
  458.        0A, ESC, 'x', 00    * Standardschrift an
  459.        0B, ESC, 'x', 01    * NLQ-Schrift an
  460.        0C, ESC, 'x', 00, 0F* Schmalschrift an
  461.        14, ESC, 'E'        * Fett an
  462.        15, ESC, 'F'        * Fett aus
  463.        16, 00              * Hell an
  464.        17, 00              * Hell aus
  465.        18, ESC, '4'        * Kursiv an    
  466.        19, ESC, '5'        * Kursiv aus
  467.        1A, ESC, '-', 01    * Unterstreichen an
  468.        1B, ESC, '-', 00    * Unterstreichen aus
  469.        1C, 00              * Outlined an
  470.        1D, 00              * Outlined aus
  471.        1E, 00              * Schattiert an
  472.        1F, 00              * Schattiert aus
  473.  
  474.        * Das folgende Stück wurde aus einer Anpassung
  475.        * für WORDPLUS direkt übernommen.
  476.        23, 1B, 52, 0, 23   * # from USA fount
  477.        24, 1B, 52, 0, 24   * $ from USA fount
  478.        40, 1B, 52, 0, 40   * @ 
  479.        5B, 1B, 52, 0, 5B   * [ 
  480.        5C, 1B, 52, 0, 5C   * \ 
  481.        5D, 1B, 52, 0, 5D   * ] 
  482.        5E, 1B, 52, 0, 5E   * ^
  483.        60, 1B, 52, 0, 60   * ' 
  484.        * 7B, 1B, 52, 0, 7B   * { 
  485.        * Diese Zeile könnte z.B. auch so geschrieben werden :
  486.        '{', ESC, 52, 0, 7B 
  487.        00                  * Ende der Tabelle
  488.  
  489.  3. 3. Neue Konfiguration laden
  490.        Nach  Wahl  des  Dateilaufwerks,  -pfades und -namens  wird  eine  neue 
  491.        Druckerkonfiguration geladen,  eine eventuell schon vorhandene Konfigu-
  492.        ration wird gelöscht.
  493.        HINWEIS :
  494.        Nach dem Programmstart wird automatisch die erste Druckerkonfiguration, 
  495.        die  im  Hauptverzeichnis  oder in dem Ordner,  aus  dem  das  Programm 
  496.        gestartet wurde, gefunden wird, geladen.
  497.  
  498.  3. 4. Voreinstellungen editieren
  499.        Nach Anwahl dieser Funktion erscheint eine Dialogbox,  in der  folgende 
  500.        Einstellungen vorgenommen werden können :
  501.  
  502.        - Druckerport : Parallel (Centronics) oder Seriell (RS232).
  503.        - Papiertyp : Einzel- oder Endlospapier.
  504.        - Papierformat : Spalten/Seite und Zeilen/Seite.
  505.        - Anzahl der Leerzeilen (zum Überspringen der Perforation).
  506.        - Offset zum linken Rand.
  507.        - Spalten- und/oder Zeilenindizes oder auch nicht.
  508.        - Schrifttyp : Standard-, NLQ- oder Schmalschrift.
  509.  
  510.        HINWEIS :
  511.        Verstellt  man  den Schrifttyp,  so sollte man auf  alle  Fälle  darauf 
  512.        achten, auch die Papierbreite zu verändern.
  513.  
  514.  3. 5. Voreinstellungen laden
  515.        Nach  Wahl  des  Dateilaufwerks,  -pfades und -namens  wird  eine  neue 
  516.        Druckervoreinstellung geladen,  eine eventuell schon vorhandene Vorein-
  517.        stellung wird gelöscht.  Für Druckervoreinstellungen ist die  Extension 
  518.        'PST' vorgesehen.
  519.        HINWEIS :
  520.        Nach dem Programmstart wird automatisch die erste Datei mit Druckervor-
  521.        einstellungen,  die im Hauptverzeichnis oder in dem Ordner, aus dem das 
  522.        Programm gestartet wurde, gefunden wird, geladen.
  523.  
  524.  3. 6. Voreinstellungen speichern
  525.        Nach Wahl des Dateilaufwerks,  -pfades und -namens wird die Druckervor-
  526.        einstellung gespeichert.
  527.  
  528.  4. DAS 'BEARBEITEN'-MENUE
  529.  
  530.  4. 1. Arbeitsblattdarstellung definieren
  531.        Der  Inhalt  eines  jeden Arbeitsblattes  kann  in  vier  verschiedenen 
  532.        Schriftgrößen dargestellt werden. Außerdem ist es in jedem Arbeitsblatt 
  533.        möglich  zu  bestimmen,  welche  Zellenbegrenzungen  gezeichnet  werden 
  534.        sollen.  Nach Anwahl dieser Funktion erscheint also eine Dialogbox,  in 
  535.        der die diversen Einstellungen vorgenommen werden können :
  536.  
  537.        -  6x 6 : Iconschrift.
  538.        -  8x 8 : Standardeinstellung für mittlere Auflösung.
  539.        -  8x16 : Standardeinstellung für hohe Auflösung.
  540.        - 16x16 : Ziemlich groß.
  541.  
  542.        - Horizonatale Begrenzung : Unterhalb der Zelle.
  543.        - Vertikale Begrenzung :    Rechts von der Zelle.
  544.  
  545.        HINWEISE :
  546.        Zum Editieren des Arbeitsblattes empfiehlt sich die jeweilige Standard-
  547.        einstellung.  Die  kleinen Schriften eignen sich  vorzüglich,  um  z.B. 
  548.        großflächige  Blockoperationen  vorzunehmen  oder  um  das  Layout  des 
  549.        Arbeitsblattes zu begutachten. Schaltet man auf eine kleine Schrift um, 
  550.        so  sollte man auch gleich die horizontale Zellenbegrenzung  entfernen, 
  551.        da man ansonsten vor lauter Linien nichts mehr sieht, außerdem wird das 
  552.        Arbeitsblatt schneller gezeichnet.
  553.  
  554.  4. 2. Zahlendarstellung definieren
  555.        Es ist möglich, für jedes Arbeitsblatt eine andere Zahlendarstellung zu 
  556.        definieren.  Nach Anwahl der Funktion erscheint eine Dialogbox,  in der 
  557.        folgende Einstellungen vorgenommen werden können (Standardeinstellungen 
  558.        in Fettschrift):
  559.  
  560.        - Ergebnis- oder Ausdrucksdarstellung.
  561.        - Deutsche oder Amerikanische Zahlendarstellung.
  562.        - Vorzeichen vor oder hinter der Zahl.
  563.  
  564.        Bei  der deutschen Zahlendarstellung wird zur Gliederung des  Vorkomma-
  565.        teils  einer Zahl der Punkt verwendet.  Zur Trennung des  Vorkommateils 
  566.        vom Nachkommateil wird das Komma eingesetzt.  Im amerikanischen  System 
  567.        werden die beiden Zeichen, Punkt und Komma, genau umgekehrt verwendet.
  568.        HINWEIS :
  569.        Ergebnisse,  die ungleich Null,  aber kleiner als 10-5 oder größer  als 
  570.        1011-1 sind,  werden in der Exponentialform dargestellt,  ein eventuell 
  571.        vorhandenes  negatives  Vorzeichen wird dabei immer  vor  dem  Ergebnis 
  572.        ausgegeben.
  573.  
  574.  4. 3. Spaltenbreite definieren
  575.        Diese  Funktion erlaubt es,  die Breite aller Zellen  der  Cursorspalte 
  576.        sowie die Anzahl der in diesen Zellen darzustellenden  Nachkommastellen 
  577.        in  einer  Dialogbox zu definieren.  Die Breite darf  die  Werte  1-255 
  578.        (Zeichen) annehmen, die Anzahl der Nachkommastellen 1-10.
  579.  
  580.  4. 4. Zeilenhöhe definieren
  581.        Diese  Funktion erlaubt es,  die Höhe aller Zellen der  Cursorzeile  in 
  582.        einer Dialogbox zu definieren.  Die Höhe darf Werte von 1-255  (Zeilen) 
  583.        annehmen.
  584.  
  585.  4. 5. Cursor setzen (F6)
  586.        Nach Anwahl dieser Funktion erscheint eine Dialogbox,  in der verschie-
  587.        dene Funktionen durch Anclicken angewählt werden können :
  588.  
  589.        - Cursor zum Spaltenanfang    (CONTROL + Cursor rauf)
  590.        - Cursor zum Spaltenende      (CONTROL + Cursor runter)
  591.        - Cursor zum Zeilenbeginn     (CONTROL + Cursor links)
  592.        - Cursor zum Zeilenende       (CONTROL + Cursor rechts)
  593.  
  594.        - Ausschnitt nach oben        (SHIFT + Cursor rauf)
  595.        - Ausschnitt nach unten       (SHIFT + Cursor runter)
  596.        - Ausschnitt nach links       (SHIFT + Cursor links)
  597.        - Ausschnitt nach rechts      (SHIFT + Cursor rechts)
  598.  
  599.        - Cursor zum Blockstart       (ALTERNATE + S)
  600.        - Cursor zum Blockende        (ALTERNATE + E)
  601.  
  602.        Außerdem kann der Cursor auf eine bestimmte Zelle gesetzt werden.  Dazu 
  603.        müssen  die Koordinaten in dem Format Spalte/ Zeile eingegeben  werden, 
  604.        nach Click auf das Eingabefeld oder Return wird der Cursor gesetzt.
  605.  
  606.  4. 6. Zelle editieren (F7)
  607.  
  608.        Das Eingabefenster :
  609.        befindet  sich direkt unter der Menuezeile.  Es besteht aus einer  80x4 
  610.        Zeichen großen Arbeitsfläche.  Es läßt sich nicht verschieben, auch die 
  611.        Größe kann nicht verändert werden.
  612.  
  613.        Die Eingabemodi :
  614.        CIA  kennt drei Eingabemodi,  in jedem sieht das Eingabefenster  anders 
  615.        aus :
  616.        1. Kein Arbeitsblatt ist geöffnet, das Eingabefenster ist    gelöscht.
  617.        2. Mindestens ein Arbeitsblatt ist geöffnet,  im Eingabefenster  werden 
  618.           permanent die Nummer des aktuellen Arbeitsblattes,  die  Koordinaten 
  619.           der  Zelle,  in  der  sich der Cursor  befindet,  und  deren  Inhalt 
  620.           (Nichts, Ausdruck, String oder Trennzeichen) angezeigt.
  621.        3. Die Funktion 'Zelle editieren' wurde angewählt,  das  Eingabefenster 
  622.           ist  aktiviert,  d.h.  der Zelleninhalt kann  editiert  werden.  Das 
  623.           Fenster,  in  dem  sich  das  aktuelle  Arbeitsblatt  befindet,  ist 
  624.           deaktiviert. Es kann nur im Eingabefenster gearbeitet werden.
  625.  
  626.        Aktivierung des Eingabefensters :
  627.        Das Eingabefenster läßt sich auf vier verschiedene Arten aktivieren :
  628.        1. Durch Anwahl des Menuepunktes 'Editieren'.
  629.        2. Durch Betätigung der Taste F7.
  630.        3. Durch  Doppelclick  auf die zu editierende Zelle.  Der  Cursor  wird 
  631.           automatisch gesetzt.
  632.        4. Durch Click auf das Eingabefenster.
  633.  
  634.        Danach kann der Zelleninhalt bearbeitet werden. Eingaben, also mathema-
  635.        tische Ausdrücke oder Texte,  können in der dafür vorgesehenen Eingabe-
  636.        zeile vorgenommen werden, die Maximallänge beträgt 255 Zeichen.
  637.        Neben  den  obligatorischen Tastaturkommandos Cursor links  und  rechts 
  638.        stehen noch die Folgenden zur Verfügung :
  639.        CONTROL + Cursor links setzt den Cursor an den Zeilenanfang.  CONTROL + 
  640.        Cursor rechts entsprechend an das Zeilenende. Delete löscht das Zeichen 
  641.        auf der Cursorposition.
  642.        Backspace löscht das Zeichen links vom Cursor.
  643.        ESC löscht die Eingabezeile. UNDO stellt den ursprünglichen Inhalt (was 
  644.        in der Zelle steht) wieder her.
  645.  
  646.        Außerdem  kann  jede Zelle mit einer Vielzahl von  Attributen  versehen 
  647.        werden,  hiermit  läßt sich das Arbeitsblatt gestalten.  Die  Attribute 
  648.        können sowohl per Maus als auch per Tastatur bearbeitet werden.
  649.  
  650.        Der Zellentyp :
  651.        In CIA existieren vier Zellentypen :
  652.        1. Leerzellen.
  653.        2. Zellen,  die  einen mathematischen Ausdruck  beinhalten,  z.B.  '9', 
  654.           '1973.78' oder 'COS(0.5)^2+SIN(0.5)^2'.
  655.        3. Zellen, die einen String beinhalten, z.B. 'Summe :'.
  656.        4. Sogenannte Trennzellen, die nur ein Zeichen beinhalten, welches dann 
  657.           benutzt wird,  die jeweilige Zelle in ganzer Breite damit ausgefüllt 
  658.           darzustellen. Somit lassen sich schnell und speichersparend Bereiche 
  659.           voneinander abgrenzen oder Ergebnisse hervorheben.  Außerdem  müssen 
  660.           bei  einer  späteren  Spaltenverbreiterung  Trennlinien  nicht  mehr 
  661.           manuell angepasst werden.
  662.  
  663.        Editiert  man  eine bis zu diesem Zeitpunkt leere Zelle,  so  wird  der 
  664.        Zellentyp automatisch auf 'Ausdruck' gestellt.  Der Zellentyp kann  mit 
  665.        den Tasten F1-F4 eingestellt werden.
  666.  
  667.        Die Schriftattribute :
  668.        CIA stellt folgende Schriftattribute zur Verfügung :
  669.        Fett, Hell, Kursiv  und Unterstrichen.
  670.        Diese  Attribute  können beliebig miteinander  kombiniert  werden,  sie 
  671.        werden  im Arbeitsfenster und auf dem Drucker dargestellt.
  672.        Das Setzen oder Löschen eines Schriftattributes kann mit CONTROL +  F1-
  673.        F4 vorgenommen werden.
  674.  
  675.        Die Schriftfarbe :
  676.        Es  kann  bei mittlerer Auflösung zwischen  vier,  in  hoher  Auflösung 
  677.        zwischen  zwei Schriftfarben gewählt werden.  Der Zelleninhalt und  die 
  678.        Zellenbegrenzungen    werden  dann auf dem Bildschirm in  dieser  Farbe 
  679.        dargestellt.  Die  Schriftfarbe  kann mit SHIFT-links +  F1-F4  gewählt 
  680.        werden.
  681.  
  682.        Die Ausgabeformatierung :
  683.        Es  existieren vier Möglichkeiten,  die  Ausgabeformatierung  innerhalb 
  684.        einer  Zelle  zu beeinflussen.  Dabei ist der Inhalt der  Zelle  völlig 
  685.        belanglos. Die Anwahl der gewünschten  Ausgabeformatierung kann mittels 
  686.        ALTERNATE + F1-F4 erfolgen.
  687.  
  688.        1. Ausgabe linksbündig  :
  689.           Der  Zelleninhalt wird ganz links in der Zelle ausgegeben.  Ist  der 
  690.           Inhalt zu lang, so wird dieser rechts abgeschnitten.
  691.        2. Ausgabe rechtsbündig  :
  692.           Der Zelleninhalt wird so ausgegeben, daß dieser  am rechten Ende der 
  693.           Zelle anstößt.  Ist der Inhalt zu lang, so wird er links abgeschnit-
  694.           ten.
  695.        3. Ausgabe zentriert  :
  696.           Der Zelleninhalt wird in die Mitte der Zelle positioniert.  Ist  der 
  697.           Inhalt zu lang, dann erfolgt die Ausgabe linksbündig.
  698.        4. Ausgabe formatiert  :
  699.           Der  Zelleninhalt  wird  so  ausgegeben,  daß  er  die  ganze  Zelle 
  700.           ausfüllt,  d.h.  in eventuell schon vorhandene Zwischenräume werden, 
  701.           wenn notwendig,  noch Leerzeichen eingefügt. Ist der Zelleninhalt zu 
  702.           lang, dann erfolgt die Ausgabe wieder linksbündig.
  703.  
  704.        Die Zellenbegrenzungen :
  705.        In dieser Programmversion ist es möglich,  die rechte vertikale Zellen-
  706.        begrenzung  zu entfernen und damit die Zelle um die  rechts  darauffol-
  707.        gende Zelle zu verbreitern.  Diese Zelle wird also von der Zelle  links 
  708.        davon überlappt,  ihr Inhalt wird nicht mehr angezeigt,  er bleibt aber 
  709.        erhalten. Es ist auch weiterhin möglich, diese Zelle anzuwählen und sie 
  710.        zu  bearbeiten.  Entfernt  man die Zellenbegrenzung  bei  dieser  schon 
  711.        überlappten Zelle,  so wird die erste Zelle nochmals um die rechts  von 
  712.        der überlappten Zelle liegenden Zelle erweitert. Das Ganze ist ungefähr 
  713.        so schwierig zu beschreiben wie zu programmieren.  In diesem Falle geht 
  714.        Probieren  über  Studieren !  Die vertikale Zellenbegrenzung  kann  mit 
  715.        SHIFT- rechts + F2 gesetzt oder gelöscht werden.
  716.  
  717.        Die Sichtbarkeit :
  718.        Der Zelleninhalt kann 'unsichtbar' gemacht werden,  d.h.  er wird nicht 
  719.        mehr dargestellt, weder auf dem Bildschirm, noch auf dem Drucker, etc., 
  720.        es ist aber jederzeit möglich,  ihn wieder zu bearbeiten.  Diese Option 
  721.        kann mittels SHIFT-rechts + F3 gesetzt oder gelöscht werden.
  722.  
  723.        Der Löschschutz :
  724.        Ist diese Option aktiviert,  so kann der Inhalt der betreffenden  Zelle 
  725.        von keiner Funktion mehr gelöscht werden, außer von der Eingabefunktion 
  726.        selbst. Zellen mit besonders wichtigem oder kompliziertem Inhalt sollte 
  727.        man auf alle Fälle schützen.  Der Löschschutz kann durch SHIFT-rechts + 
  728.        F4 aktiviert oder deaktiviert werden.
  729.  
  730.        Abschluß der Eingabe :
  731.        Die  Eingabe  kann durch Return oder durch Click  auf  das  Eingabefeld 
  732.        abgeschlossen werden.  Ist das Eingabefeld zu diesem Zeitpunkt leer, so 
  733.        wird der Zellentyp automatisch auf 'Leerfeld' gesetzt.  Ansonsten  wird 
  734.        je nach Zellentyp folgendermaßen vorgegangen :
  735.        1. Zellentyp=Leerfeld  :
  736.           Die Zelle wird gelöscht,  ein eventuell vorhandener Löschschutz  hat 
  737.           hier keine Wirkung.
  738.        2. Zellentyp=Ausdruck  :
  739.           Der eingegebene Ausdruck wird tokenisiert. Tritt beim dabei durchge-
  740.           führten   Syntaxcheck   ein  Fehler  auf,   so  wird   die   Eingabe 
  741.           (zwangsweise)  fortgesetzt.  War  die Syntax korrekt,  so  wird  der 
  742.           Ausdruck  und das Ergebnis der nach dem Check  erfolgten  Berechnung 
  743.           übernommen. Zur Syntax und Berechnung von Ausdrücken s. unten.
  744.        3. Zellentyp=String  :
  745.           Der eingegebene String wird ohne Änderung übernommen.
  746.        4. Zellentyp=Trennfeld  :
  747.           Das  erste  Zeichen des eingegebenen Strings wird  als  Trennzeichen 
  748.           übernommen.
  749.  
  750.        Kommt  es  zu einer Fehlermeldung wegen Speichermangels,  so  wird  die 
  751.        Eingabe (zwangsweise) fortgesetzt.
  752.        Ein  Anclicken des ABBRUCH-Buttons bewirkt ebenfalls den  Abschluß  der 
  753.        Eingabe, allerdings werden alle gemachten Änderungen ignoriert.
  754.        Nach  abgeschlossener  Eingabe wird der neue  Zelleninhalt  im  Fenster 
  755.        dargestellt,  das Eingabefenster deaktiviert und auf Eingabe-Modus zwei 
  756.        geschaltet  (s.  oben)  und  das Fenster,  in  dem  sich  das  aktuelle 
  757.        Arbeitsblatt befindet, aktiviert.
  758.  
  759.        MATHEMATISCHE AUSDRÜCKE
  760.        werden genauso wie in gängigen Hochsprachen (z.B.  Basic,  C, Modula-2, 
  761.        usw.)  gebildet und berechnet.  Ein Ausdruck setzt sich aus einem  oder 
  762.        mehreren Operanden zusammen,  im zweiten Fall werden diese durch Opera-
  763.        toren miteinander verknüpft.
  764.  
  765.        Liste der Operanden :
  766.        1. Konstanten
  767.           CIA (oder besser :  GFA-Basic) kann Zahlen im Bereich von 10-999 bis 
  768.           10999 verarbeiten, bei einer Genauigkeit von 12 Stellen.
  769.           Konstanten müssen im Dezimalsystem eingegeben werden. Der Punkt gilt 
  770.           als Komma.  Zifferngruppen dürfen nicht getrennt werden (z.B. falsch 
  771.           ist  '198,987.89').  Es  kann allerdings  auch  die  Normdarstellung 
  772.           verwendet  werden,  bei der Mantisse und Exponent  direkt  angegeben 
  773.           werden :
  774.           1.76E+6 = 1.76*106 = 1760000
  775.           1E-9 = 1*10-9 = 0.000000001 = 1 Milliardstel
  776.  
  777.        2. Direkter Zellenzugriff
  778.           Will  man  auf  den Inhalt einer Zelle zugreifen,  so  muß  man  die 
  779.           Koordinaten  dieser  Zelle in eckigen Klammern und durch  ein  Komma 
  780.           voneinander getrennt angegeben, z.B.: [10,15]
  781.           [20+5*[1,10],25-[4,3]]
  782.           HINWEISE  :
  783.           Ob  nun  direkt  auf das in der  angesprochenen  Zelle  gespeicherte 
  784.           Ergebnis  zugegriffen  oder ob der Ausdruck  noch  einmal  berechnet 
  785.           wird,  hängt  von  der  eingestellten  Iterationstiefe  ab  (s.  bei 
  786.           'Iterationen').
  787.           Auf nicht-existente Zellen sowie auf Zellen mit nicht-mathematischen 
  788.           Inhalt  darf nicht zugegriffen werden.  Auf Zellen,  die zwar  einen 
  789.           Ausdruck  beinhalten,  dessen Ergebnis aber nicht  berechnet  werden 
  790.           konnte,  darf nur dann zugegriffen werden,  wenn die Iterationstiefe 
  791.           ausreichend zu einer nochmaligen Berechnung des Ausdrucks ist.
  792.  
  793.        3. Zellenzugriff mittels Benennungen
  794.           Der direkte Zellenzugriff ist zugegebenermaßen nicht besonders  kom-
  795.           fortabel,  deshalb  bietet  CIA die Möglichkeit,  Zellen  oder  auch 
  796.           ganze Bereiche mit einem Namen zu versehen (s.  bei 'Benennen'). Für 
  797.           den  Zugriff muß die entsprechende Benennung in  geschweiften  Klam-
  798.           mern angegeben werden, z.B.: {SUMME}.
  799.           HINWEISE :
  800.           In der Benennung sind folgende Zeichen erlaubt :
  801.           0-9, A-Z, a-z, _, .
  802.           Eine Benennung kann auch dann verwendet werden,  wenn sie noch nicht 
  803.           definiert  wurde,  die  Berechnung wird dann  allerdings  mit  einer 
  804.           Fehlermeldung abgebrochen.
  805.           Weiteres s. unter Punkt 2.
  806.  
  807.        4. Zugriff auf andere Arbeitsblätter
  808.           Auch der Zugriff auf andere Arbeitsblätter ist kein  Problem,  hier-
  809.           für  muß  lediglich  der in  Anführungszeichen  eingeschlossene  Da-
  810.           teipfad nach einem Komma den Koordinaten bzw.  der Benennung  hinzu-
  811.           gefügt werden, z.B.:
  812.           [1,2,"C:\SPREADSH.EET\TEST.CT"]
  813.           [10,7,"\JANUAR"]
  814.           {SUMME,"QUARTAL_1"}
  815.           Standardmäßig sind folgende Zeichen im Dateipfad erlaubt:
  816.           0-9, A-Z, a-z, ö, ü, ä, Ö, Ü, Ä, \, _, ., §, :, ß
  817.           Bei  einer  späteren Berechnung wird,  falls keine  Laufwerks-  bzw. 
  818.           Ordnerangabe (ein einziges Backslash='\' vor dem eigentlichen Datei-
  819.           namen  verweist bereits auf die oberste Verzeichnisebene !)  gemacht 
  820.           wurde,  der Dateipfad automatisch um das Laufwerk bzw.  den  Ordner, 
  821.           auf bzw. in dem sich das Arbeitsblatt befindet, ergänzt. Sollte auch 
  822.           die Extension des Dateinamens fehlen,  so wird dieser um den  String 
  823.           '.CT' erweitert.  Anschließend wird das gesamte Arbeitsblatt geladen 
  824.           (aber  nicht dargestellt !).  Auf diese Weise kann,  falls dies  die 
  825.           eingestellte  Iterationstiefe  erforderlich  macht,   programmintern 
  826.           schnell  auch auf andere Zellen in diesem  Arbeitsblatt  zugegriffen 
  827.           werden.  Im  Rahmen einer iterativen Berechnung werden  dann,  falls 
  828.           notwendig,  auch noch andere Arbeitsblätter nachgeladen.  Sobald ein 
  829.           (Zwischen-)Ergebnis  bestimmt ist,  wird das jeweilige  Arbeitsblatt 
  830.           wieder   gelöscht.   CIA  kann  max.   10   solcher   'unsichtbarer' 
  831.           Arbeitsblätter gleichzeitig im Speicher verwalten.
  832.           HINWEISE :
  833.           s. unter Punkt 2.
  834.  
  835.        5. Funktionen
  836.           CIA  verfügt über eine Vielzahl  von  mathematischen,  statistischen 
  837.           und logischen Funktionen (s.  'Liste der Funktionen').  Die  meisten 
  838.           Funktionen benötigen noch Argumente,  die bearbeitet werden  sollen, 
  839.           diese  können  selbstverständlich  auch wieder  aus  Ausdrücken  be-
  840.           stehen. Zur Einhaltung der Definitionsbereiche s. unten.
  841.  
  842.        6. Klammernausdrücke
  843.           werden  durch eine runde offene Klammer '(' eingeleitet.  Dann  kann 
  844.           der Ausdruck beliebig fortgeführt werden,  der Klammernausdruck  muß 
  845.           mit einer runden geschlossenen Klammer ')' beendet werden.
  846.  
  847.        Vorzeichen :
  848.        CIA kennt die Vorzeichen '+' und '-'.  Der Negationsoperator '!'  läuft 
  849.        ebenfalls unter Vorzeichen.  Vorzeichen können in beliebiger Menge  und 
  850.        Reihenfolge vor beliebige Operanden gestellt werden.
  851.  
  852.        Operatoren :
  853.        CIA  verfügt auch über eine Vielzahl von mathematischen  und  logischen 
  854.        Operatoren  (s.  'Liste  der Operatoren').  Ein  Operator  steht  immer 
  855.        zwischen zwei Operanden.  Was im Zusammenhang mit Operatoren  besonders 
  856.        beachtet  werden muß,  ist deren Priorität.  Diese Prioritäten  (stehen 
  857.        ebenfalls in der Liste)  bestimmen die Reihenfolge,  in der die Operan-
  858.        den  miteinander  verknüpft  werden.  So gilt  z.B.  auch  in  CIA  die 
  859.        Rechenregel 'Punkt- vor Strichrechnung',  da die Multiplikation und die 
  860.        Division  eine  höhere Priorität als Addition  und  Subtraktion  haben. 
  861.        Klammern  haben  übrigens die höchste Priorität,  sie  sind  allerdings 
  862.        keine Operatoren.
  863.        Besonders hervorzuheben sind die logischen Verknüpfungen,  deren Ergeb-
  864.        nis  immer ein Wahrheitswert,  also TRUE=wahr=-1  oder  FALSE=falsch=0, 
  865.        ist.  Mit ihrer Hilfe ist es z.B.  möglich, einer Zelle in Abhängigkeit 
  866.        von einer bestimmten Bedingung einen bestimmten Wert zuzuweisen.  Damit 
  867.        eröffnet sich ein großes Gebiet von Anwendungen, für die man sonst eine 
  868.        Programmiersprache  mit  Anweisungen  zur  bedingten  Befehlsausführung 
  869.        benötigen würde. Hier ein Beispiel : -100*([1,1]==14)+22*([1,1]==0)
  870.        Wenn  also  die  Zelle [1,1] den Wert  14  enthält,  ergibt  der  erste 
  871.        Vergleich den Wert TRUE=-1.  Multpliziert mit -100 ergibt sich 100. Der 
  872.        zweite  Vergleich  ergibt  FALSE=0 und somit wird  der  gesamte  zweite 
  873.        Summand 0. Das Endergebnis lautet 100.
  874.        Enthält die Zelle [1,1] den Wert 0,  so wird der erste Summand  0,  der 
  875.        zweite 22 und das Endergebnis lautet 22.
  876.        Enthält  die  Zelle [1,1] keinen der beiden  Werte,  so  ergeben  beide 
  877.        Vergleiche den Wert FALSE, der ganze Ausdruck wird 0.
  878.  
  879.        Der Stack
  880.        ist  eine Speicherstruktur,  in der bei der Berechnung  von  Ausdrücken 
  881.        Zwischenergebnisse abgelegt werden.  Durch die verwendeten  Algorithmen 
  882.        und  die relativ großzügige Bemessung des Stacks ist es jedoch  äußerst 
  883.        schwierig,  einen  sogenannten 'Stacküberlauf' zu  provozieren.  Sollte 
  884.        dies denoch gelingen, z.B. durch wilde Klammernschachtelung, so muß der 
  885.        Ausdruck vereinfacht werden.
  886.  
  887.        Fehlermeldungen im Arbeitsblatt :
  888.        Ist bei der Berechnung eines Ausdrucks ein Fehler aufgetreten,  so wird 
  889.        anstelle  des  sowieso  nicht korrekten  Ergebnisses  die  Fehlernummer 
  890.        gespeichert. Der Fehler wird dann im Arbeitsblatt in der Form * ERROR x 
  891.        *  dargestellt.  Mit  Hilfe  der  Funktion  'Fehler  zeigen'  kann  die 
  892.        zugehörige Fehlermeldung im Klartext ausgegeben werden.
  893.  
  894.        Rechen(un)genauigkeit :
  895.        Eine Quelle für Rechenungenauigkeiten stellt sicherlich die Anzahl  der 
  896.        verfügbaren Nachkommastellen dar. Im Fließkommaformat können z.B. irra-
  897.        tionale  Zahlen  wie  π eben nur rational  und  dadurch  oftmals  nicht 
  898.        ausreichend genau dargestellt werden,  um wirklich immer  befriedigende 
  899.        Ergebnisse  zu erhalten.  Ein gutes Beispiel hierfür ist  der  Ausdruck 
  900.        COS(PI()/2). Für diesen  würde man als Ergebnis Null erwarten, tatsäch-
  901.        lich erhält man aber den Wert 1.42108547152E-14.  Dieser ist zwar  sehr 
  902.        klein und kann eigentlich vernachlässigt werden,  dafür ist er aber bei 
  903.        der  ersten Begegnung umso verwirrender.  PI() ist eben kleiner als  π. 
  904.        Und  so  kann  es zu  den  sogenannten  'Rundungsfehlern'  kommen,  die 
  905.        natürlich immer größer werden,  wenn ungenaue Näherungswerte auch  noch 
  906.        in weiteren Berechnungen Verwendung finden.
  907.        Verfahren  zur  Berechnung von  trigonometrischen  und  logarithmischen 
  908.        Funktionen  durch  Reihen erzeugen im  allgemeinen  keine  Fehler,  sie 
  909.        können  aber  selbst nur Näherungswerte mit einer  vorgegebenen  Anzahl 
  910.        von Nachkommastellen errechnen.
  911.        Auf  eine andere Art von Fehlerquelle soll sozusagen  pädagogisch  hin-
  912.        geführt  werden  :   Geben  Sie  mal  den  denkbar  einfachen  Ausdruck 
  913.        10000.00000001  ein und schauen Sie sich das  Ergebnis  an.  Zugegeben, 
  914.        nicht  allzu  überraschend !  Denn vorausgesetzt die  Zelle  ist  breit 
  915.        genug  und die Anzahl der darzustellenden Nachkommastellen  ausreichend 
  916.        groß  (für diesen Fall wären zehn nicht schlecht),  dann  werden  Ihnen 
  917.        elf  Nullen,  eingefaßt von zwei Einsen und grausam geteilt  von  einem 
  918.        Punkt,  entgegenflimmern (in Zahlen :  10000.00000001).  Editieren  Sie 
  919.        diesen Ausdruck nun noch einmal und fügen Sie nach dem Komma noch  eine 
  920.        Null ein.  Nach erneuter Berechnung werden Sie wohl doch etwas stutzen, 
  921.        denn  auf dem Bildschirm erscheint nicht wie erwartet  10000.000000001, 
  922.        sondern 10000.000000000.
  923.        Um zu verstehen,  wie es zu diesem dubiosen Ergebnis kommt, muß man die 
  924.        programminterne Darstellung von Fließkommazahlen betrachten.  Wie schon 
  925.        erwähnt,  werden diese in einer normierten Form, aufgeteilt in Mantisse 
  926.        und  Exponent,  gespeichert,  wobei sich die gespeicherte Zahl aus  der 
  927.        Formel
  928.                          Zahl=Mantisse*(10^Exponent)
  929.        ergibt.  Sowohl Mantisse als auch Exponent sind vorzeichenbehaftet. Die 
  930.        Mantisse selbst besteht aus einer Vor- und zwölf  Nachkommastellen.  Um 
  931.        möglichst viele Stellen hinter dem Komma speichern zu können,  wird die 
  932.        Vorkommastelle  immer  mit  einer Eins (intern wird  alles  binär  dar-
  933.        gestellt  !)  belegt (welche dann nicht gespeichert wird ->  Platz  für 
  934.        Nachkommastellen !).  Das ist die Normdarstellung der Mantisse, wie sie 
  935.        auch  gern  von Naturwissenschaftlern verwendet wird.  Immer  wenn  mit 
  936.        einer Fließkommazahl gerechnet wurde,  wird deren Mantisse wieder  nor-
  937.        miert,  d.h.  diese wird solange nach links verschoben und der Exponent 
  938.        analog  dazu so oft dekrementiert (d.h.  eins  wird  subtrahiert),  bis 
  939.        wieder  eine  Zahl ungleich Null vor dem  Komma  steht.    Unsere  Bei-
  940.        spielzahl wird nun nach der Eingabe in die normierte Fließkommadarstel-
  941.        lung  gebracht.  Dies geschieht,  indem das Komma hinter die Eins  vor-
  942.        geschoben   und   der   Exponent   entsprechend   erhöht   wird.    Aus 
  943.        10000.000000001  wird  1.0000000000001E+4.  Das Problem ist  jetzt  die 
  944.        zweite  Eins,  denn  die  steht nun  an  der  13.  Nachkommastelle  der 
  945.        Mantisse.  Innerhalb  der Mantisse können aber nur max.  zwölf  Stellen 
  946.        gespeichert  werden.  Fazit  :  Die 13.  Stelle muß  einfach  wegfallen 
  947.        (Underflow  !)  und  die Mantisse nimmt den Wert  1  an.  Als  Ergebnis 
  948.        ergibt sich somit der Wert 1E+4=10000.
  949.        Man kann also feststellen, daß sich das erwartete Ergebnis im Fließkom-
  950.        maformat  schlicht  und einfach nicht speichern läßt,  da  hierfür  die 
  951.        Stellen ganz links und ganz rechts einfach zu weit auseinander  liegen. 
  952.        Zahlen, bei denen die Beziehung
  953.           (Nummer der ersten Vorkommastelle+Nummer der letzten Nach-
  954.                   kommastelle-1)>Anzahl der Nachkommastellen
  955.        gilt, können also nicht gespeichert werden.
  956.        Im konkreten Beispiel : 5+9-1=13>12.
  957.  
  958.        Definitionsbereiche :
  959.        Die Einhaltung der Definitionsbereiche der Funktionen wird,  wenn  dies 
  960.        sinnvoll bzw.  möglich ist,  streng überwacht. Möglich ist es, wenn ein 
  961.        Argument  lediglich  auf einen bestimmten ganzzahligen  Wert  oder  auf 
  962.        größer,  kleiner oder gleich Null überprüft werden muß.  Unmöglich wird 
  963.        es  dann,  wenn  das Argument mit bestimmten irrationalen  Werten  ver-
  964.        glichen werden müßte,  wie dies bei der Tangens- und  Cotangensfunktion 
  965.        der Fall wäre. (Die Definitionsbereiche dieser Funktionen weisen Lücken 
  966.        bei  x=kπ+½π bzw.  bei x=kπ auf.) Der Grund hierfür liegt in der  schon 
  967.        zuvor  aufgezeigten Problematik der Unmöglichkeit der  Speicherung  von 
  968.        irrationalen Zahlen im Fließkommaformat.  Insbesondere die Periodizität 
  969.        dieser Funktionen würde große Schwierigkeiten bereiten.
  970.  
  971.  4. 7. Löschen (CONTROL + K)
  972.        Nach einer Bereichsabfrage wird der Inhalt aller nichtgeschützen Zellen 
  973.        im angegebenen Bereich hinweggetilgt,  die Struktur des  Arbeitsblattes 
  974.        bleibt dabei unverändert.
  975.  
  976.  4. 8. Benennen (CONTROL+N)
  977.        Wie  schon weiter oben erwähnt,  erlaubt es CIA,  einzelne  Zellen  und 
  978.        auch  ganze  Bereiche mit einem Namen,  einer  Benennung  zu  versehen. 
  979.        Dabei  ist  die Anzahl der Benennungen,  die definiert  werden  können, 
  980.        praktisch nur durch den Speicherplatz begrenzt.
  981.        Nach  Anwahl  dieser Funktion erscheint  eine  umfangreiche  Dialogbox, 
  982.        deren Bedienungselemente nun im einzelnen erklärt werden :
  983.  
  984.        Die Eingabefelder :
  985.  
  986.        ____________________ : [____,____]..[____,____]
  987.  
  988.        In  dieser Zeile können sowohl die eigentliche Benennung als  auch  die 
  989.        Koordinaten des zu benennenden Bereichs definiert werden. Die einzelnen 
  990.        Felder  können mit Hilfe der Cursor rauf- und  runter-Tasten  angewählt 
  991.        werden.  Für die Benennung sind 20 Zeichen vorgesehen,  mindestens  ein 
  992.        Zeichen wird verlangt.  Die Zeichen 0-9, A-Z, a-z, Tiefstrich und Punkt 
  993.        sind gültig.  Für die  Koordinaten, die wie beim direkten Zellenzugriff 
  994.        in der Form [x,y] angegeben werden müssen,  sind entsprechend der  max. 
  995.        Arbeitsblattgröße von 8192 x 8192 Zellen vier Stellen eingeplant.
  996.  
  997.        Die Bereichswahl :
  998.        Durch  Anclicken  des  gewünschten  Bereichs  ist  es  möglich,  dessen 
  999.        Koordinaten  in  die  Eingabefelder  zu  übernehmen,  dadurch  entfällt 
  1000.        lästiges Notieren und Tippen.
  1001.  
  1002.        Das Übersichtsfeld :
  1003.        In  diesem  Feld  zeigt CIA  gleichzeitig  acht  Benennungen  inklusive 
  1004.        Koordinaten  an,   die Form der Anzeige entspricht dabei der  der  Ein-
  1005.        gabezeile. Diese Benennungen können allerdings nicht editiert werden.
  1006.        Von zentraler Bedeutung ist die Markierung,  welche durch Anclicken der 
  1007.        Pfeile nach oben oder unten verschoben werden kann.  Wird die markierte 
  1008.        Benennung  angeclickt,  so wird diese samt Koordinaten in die  Eingabe-
  1009.        zeile übernommen. Ein Versetzen der Markierung mit sofortiger Übernahme 
  1010.        kann auch durch einfaches Anclicken der gewünschten Benennung erfolgen. 
  1011.        Eine  Übernahme  eines  leeren Eintrags  im  Übersichtsfeld  führt  zum 
  1012.        Löschen aller Eingabefelder.  Weiters kann mit der Markierung  bestimmt 
  1013.        werden, welche Benennung gelöscht werden soll (s. unten).
  1014.        Der  angezeigte Ausschnitt kann wie von der Bedienung  der  GEM-Fenster 
  1015.        her  gewohnt  sowohl  durch  mehrmaliges  Anclicken  der  Pfeile  (beim 
  1016.        Verschieben der Markierung wird automatisch gescrollt) als auch   durch 
  1017.        Verschieben  des  Balkens verändert werden.  Ein Anclicken  der  grauen 
  1018.        Randbereiche  verschiebt den Ausschnitt um jeweils max.  acht  Einträge 
  1019.        nach oben oder unten.
  1020.  
  1021.        Hinzufügen :
  1022.        Durch  Betätigen der Return-Taste oder durch Anclicken des  HINZUFÜGEN-
  1023.        Buttons  werden  zunächst  alle Kleinbuchstaben  in  der  Benennung  in 
  1024.        Großbuchstaben gewandelt.  Dann wird überprüft,  ob alle Zeichen gültig 
  1025.        sind,  ob  die eingegebene Benennung noch nicht definiert wurde und  ob 
  1026.        die  angegebenen  Bereichsgrenzen  auch  innerhalb  des  Arbeitsblattes 
  1027.        liegen.  Ist dies der Fall,  so wird die Benennung an die interne Liste 
  1028.        angehängt,  andernfalls  erfolgt eine jeweils entsprechende  Fehlermel-
  1029.        dung. Ist im Übersichtsfeld noch ein freier Eintrag vorhanden , so wird 
  1030.        die neue Benennung auch angezeigt,  ansonsten macht sie sich durch  ein 
  1031.        Schrumpfen des Balkens bemerkbar.
  1032.  
  1033.        Löschen :
  1034.        Nach Click auf den LÖSCHEN-Button wird die markierte Benennung aus  der 
  1035.        Liste getilgt. Die Eingabefelder werden jedoch nicht gelöscht.
  1036.  
  1037.        Fertig :
  1038.        Nach Anclicken des FERTIG-Buttons wird die Dialogbox  geschlossen.  Der 
  1039.        Inhalt  der Eingabefelder wird dabei jedoch nicht übernommen,  und  ist 
  1040.        somit  verloren,  da bei Anwahl des Menuepunktes immer automatisch  die 
  1041.        erste Benennung aus der Liste in die Eingabefelder übernommen wird.
  1042.  
  1043.  4. 9. Durchrechnen (F8)
  1044.        Nach einer Bereichsabfrage werden alle Ausdrücke, die sich in Zellen im 
  1045.        angegebenen  Bereich befinden,  durchgerechnet,  die Ergebnisse  werden 
  1046.        gespeichert und dargestellt.
  1047.  
  1048.  4.10. Nachberechnung (F9)
  1049.        CIA führt auf Wunsch nach jeder Ausdruckseingabe eine  vollautomatische 
  1050.        Nachberechnung  eines  bestimmten Bereichs  des  Arbeitsblattes  durch. 
  1051.        Dazu muß in der Dialogbox,  die nach Anwahl dieser Funktion  erscheint, 
  1052.        die  Automatik  eingeschalten  und der  entsprechende  Bereich  gewählt 
  1053.        werden.
  1054.        HINWEIS :
  1055.        Bei  einem  großen  Bereich und/oder großer  Iterationstiefe  kann  die 
  1056.        Nachberechnung  länger dauern.  Es empfiehlt sich also,  diese auf  den 
  1057.        angezeigten  Ausschnitt  oder auf die gerade  bearbeitete  Spalte  oder 
  1058.        Zeile zu begrenzen, das hängt aber natürlich von der Anwendung ab.
  1059.  
  1060.  4.11. Iterationen (CONTROL + I)
  1061.        Wird  ein  Bereich  des  Arbeitsblattes  oder  das  ganze  Arbeitsblatt 
  1062.        durchgerechnet,  so  wird  immer  von  links  oben  nach  rechts  unten 
  1063.        gerechnet. Dabei ergibt sich folgende Problematik : Greift ein Ausdruck 
  1064.        auf eine  Zelle zu,   die sich rechts und/oder unterhalb von  der Zelle 
  1065.        befindet,  die  den   zu berechnenden Ausdruck  enthält,  so  kann  das 
  1066.        Ergebnis verfälscht werden.  Denn wer garantiert,  daß das Ergebnis  in 
  1067.        der  Zelle,  auf die zugegriffen wird,  noch gültig ist ?   Als  Lösung 
  1068.        dieses  Problems bietet sich eine nochmalige Berechnung  desselben  an. 
  1069.        Doch was,  wenn auch dieser Ausdruck auf andere Zellen zugreift ?  Hier 
  1070.        liegt es am Anwender zu bestimmen, wie 'tief' gerechnet werden soll.
  1071.  
  1072.        Nach Anwahl dieser Funktion erscheint also eine Dialogbox,  in der  die 
  1073.        Iterationstiefe (0-99) eingestellt werden kann.  Die Tiefe Null  bedeu-
  1074.        tet,  daß bei Zellenzugriffen einfach mit den gespeicherten Ergebnissen 
  1075.        weitergerechnet wird,  eins daß bei Zellenzugriffen der  Ausdruck,  auf 
  1076.        den  zugegriffen  werden soll,  berechnet wird,  greift  jedoch  dieser 
  1077.        Ausdruck  wiederum  auf andere Zellen zu,  so wird mit  den  in  diesen 
  1078.        Zellen gespeicherten Ergebnissen weitergerechnet, usw...
  1079.  
  1080.        Internas :
  1081.        CIA realisiert dies durch einen internen Zähler :  Bei jedem  Zellenzu-
  1082.        griff  wird  der Wert des Zählers,  falls dieser noch kleiner  als  die 
  1083.        max.  Iterationstiefe ist,  um eins erhöht und der Ausdruck  berechnet. 
  1084.        Ist  die  Berechnung erfolgt,  so wird der Zähler wieder  um  eins  er-
  1085.        niedrigt.  War die max. Iterationstiefe schon erreicht, so wird nur auf 
  1086.        das Ergebnis zugegriffen.
  1087.  
  1088.        Beeinflussung der Geschwindigkeit :
  1089.        Eine  größere Iterationstiefe zieht natürlich auch  eine  Verlangsamung 
  1090.        des Berechnungsvorgangs nach sich. Ab einer vom jeweiligen Arbeitsblatt 
  1091.        abhängigen  Iterationstiefe wird jedoch keine Verlangsamung mehr  fest-
  1092.        zustellen  sein,  da ja wohl irgendwann auf Zellen  zugegriffen  werden 
  1093.        muß, die selbst keine anderen Zellen mehr ansprechen.
  1094.  
  1095.        Rekursion :
  1096.        Rekursion,  d.h.  Zellen greifen gegenseitig aufeinander zu,  ist  zwar 
  1097.        uneingeschränkt möglich,  sollte jedoch vermieden werden,  da sich  die 
  1098.        Ergebnisse gegenseitig beeinflussen und die Endergebnisse stark von der 
  1099.        gewählten  Iterationstiefe  abhängig  sind.  Das  ist  dann  kaum  mehr 
  1100.        durchschaubar.
  1101.  
  1102.  4.12. Suchen (CONTROL + F)
  1103.        Diese Funktion erlaubt es,  ab der Cursorposition nach einem bestimmten 
  1104.        String  oder nach einem Fehler zu suchen.  Nach Anwahl  erscheint  eine 
  1105.        Dialogbox, in der der zu suchende String (max. 20 Zeichen) und/oder der 
  1106.        zu  suchende  Fehler definiert  werden  können.  Soll  kein  bestimmter 
  1107.        Fehler gesucht werden,  so genügt es, Null einzugeben. Um zu bestimmen, 
  1108.        was gesucht werden soll,  genügt es, das jeweilige Eingabefeld per Maus 
  1109.        zu  selektieren.  Außerdem  kann  noch  die  Suchrichtung  und  ob  die 
  1110.        Groß/Kleinschreibung beachtet werden soll, eingestellt werden.
  1111.  
  1112.        Der Suchvorgang :
  1113.        Zunächst wird die gewählte Suchrichtung an die Cursorposition angepaßt, 
  1114.        d.h. befindet sich der Cursor z.B. auf Zelle [1,1] und die Suchrichtung 
  1115.        'nach  links,  dann nach oben' ist eingestellt,  so wird  die  Richtung 
  1116.        automatisch umgekehrt.
  1117.        Wird  nach  einem String gesucht,  so werden alle Zellen  mit  Strings, 
  1118.        Ausdrücken und Trennzeichen durchsucht.
  1119.        Wird nach einem Fehler gesucht, so werden alle Zellen mit mathematichen 
  1120.        Inhalt und nicht-bestimmten bzw.  nicht-bestimmbaren Ergebnis beachtet.  
  1121.        Wurde  das  Gesuchte gefunden,  so wird der Cursor auf  die  Fundstelle 
  1122.        gesetzt, ansonsten wird eine Meldung ausgegeben.
  1123.  
  1124.  4.13. Erneut suchen (CONTROL + A)
  1125.        Diese  Funktion  bewirkt  die Auslösung  eines  Suchvorganges  wie  bei 
  1126.        'Suchen' beschrieben.
  1127.  
  1128.  4.14. Fehler zeigen (CONTROL + D)
  1129.        Diese Funktion zeigt,  falls sich der Cursor auf einer Zelle mit nicht-
  1130.        bestimmbaren  Ergebnis befindet,  den gespeicherten Fehler im  Klartext 
  1131.        an.
  1132.  
  1133.  5. DAS 'BLOCK'-MENUE
  1134.  
  1135.        Zur Blockdefinition und -darstellung :
  1136.        In  jedem Arbeitsblatt kann ein Block definiert  werden,  entweder  per 
  1137.        Maus oder per Tastatur (s. unten). Die Koordinaten des Blockstartes und 
  1138.        des  Blockendes  können der Info-Zeile des Fensters,  in dem  sich  das 
  1139.        jeweilige Arbeitsblatt befindet,  entnommen werden.  Zellen, die zu dem 
  1140.        Block gehören,  werden mit schattiertem Untergrund  dargestellt.  Diese 
  1141.        Markierung  erfolgt  allerdings erst,  wenn  Blockstart  und  Blockende 
  1142.        definiert sind.  Zellen,  die innerhalb eines Blockes  liegen, aber von 
  1143.        Zellen,  die links oder oberhalb des Blockes liegen,  überlappt werden, 
  1144.        erhalten  keine  Markierung.  Zellen,  die rechts  oder  unterhalb  des 
  1145.        Blockes liegen und von Zellen, die sich innerhalb des Blockes befinden, 
  1146.        überlappt werden, werden markiert.
  1147.  
  1148.        Blockdefinition per Maus :
  1149.        Ein  Block  kann mit Hilfe der Maus definiert  werden,  indem  man  die 
  1150.        Zelle,  in  der  der Blockstart liegen soll,  anclickt,  dann  mit  ge-
  1151.        drückter  linker Maustaste ein Rechteck bis zu der Zelle  aufzieht,  in 
  1152.        der das Blockende liegen soll, und schließlich die Maustaste losläßt.
  1153.  
  1154.        Blockdefinition per Tastatur :
  1155.        Diese  kann  per  CONTROL + S  (für Blockstart) und CONTROL  +  E  (für 
  1156.        Blockende)  vorgenommen  werden (s.  unten).  Dabei ist   Folgendes  zu 
  1157.        beachten : Wird der Blockstart rechts und/oder unterhalb des Blockendes 
  1158.        oder  wird  das  Blockende links  und/oder  oberhalb  des  Blockstartes 
  1159.        definiert, so werden Blockstart und Blockende vertauscht.
  1160.  
  1161.  5. 1. Bereich -> Block (F10)
  1162.        Nach  einer Bereichsabfrage wird der gewählte Bereich als  Block  defi-
  1163.        niert.
  1164.  
  1165.  5. 2. Blockstart definieren (CONTROL + S)
  1166.        Diese  Funktion  legt den Blockstart in die Zelle,  in der  der  Cursor 
  1167.        steht.
  1168.  
  1169.  5. 3. Blockende definieren (CONTROL + E)
  1170.        Diese Funktion legt das Blockende in die Zelle,  in der sich der Cursor 
  1171.        befindet.
  1172.  
  1173.  5. 4. Demarkieren (CONTROL + H)
  1174.        Diese Funktion löscht die Markierungen des Blockes.
  1175.  
  1176.  5. 5. Kopieren (CONTROL + C)
  1177.        Diese  Funktion kopiert den Block,  falls vorhanden,  an  die  aktuelle 
  1178.        Cursorposition.  Die  Struktur  des Arbeitsblattes   wird  dabei  nicht 
  1179.        verändert,  d.h.  die Zellenbegrenzungen der kopierten Zellen werden an 
  1180.        die 'örtlichen Gegebenheiten' angepaßt. Blockstart und Blockende werden 
  1181.        nicht verändert, die Markierung bleibt erhalten.
  1182.  
  1183.  5. 6. Kopieren nach (ALTERNATE + C)
  1184.        Diese Funktion ermöglicht es, einen Block aus einem Arbeitsblatt in ein 
  1185.        anderes   zu  kopieren,   sie  ersetzt  somit  ein  Funktionspaar   wie 
  1186.        'Ausschneiden' und 'Einfügen'.
  1187.        Falls  sich  also  in dem aktuellen Arbeitsblatt  ein  Block  befindet, 
  1188.        erscheint  eine Dialogbox,  in der das Quell- und das  Zielarbeitsblatt 
  1189.        festgelegt werden können.  Nach Bestätigung durch OK wird der Block  im 
  1190.        Quellarbeitsblatt  an die aktuelle Cursorposition  im  Zielarbeitsblatt 
  1191.        kopiert,  die Zellenbegrenzungen werden wiederum angepaßt. Der Block im 
  1192.        Quellarbeitsblatt bleibt unverändert.
  1193.  
  1194.  5. 7. Verschieben (CONTROL + M)
  1195.        Diese Funktion verschiebt den Block,  falls vorhanden,  an die aktuelle 
  1196.        Cursorposition,  d.h.  der  Inhalt  der Zellen im Block wird  in  einem 
  1197.        Arbeitsgang kopiert und gelöscht. Die Struktur des Arbeitsblattes  wird 
  1198.        dabei nicht verändert, der Block wird demarkiert.
  1199.  
  1200.  5. 8. Verschieben nach (ALTERNATE + M)
  1201.        Falls sich in dem aktuellen Arbeitsblatt ein Block befindet,  erscheint 
  1202.        eine Dialogbox,  in der das Quell- und das Zielarbeitsblatt  festgelegt 
  1203.        werden  können.  Nach Bestätigung durch OK wird der Block  im  Quellar-
  1204.        beitsblatt an die aktuelle Cursorposition im Zielarbeitsblatt  verscho-
  1205.        ben,  d.h.  der Inhalt der Zellen im Block im Quellarbeitsblatt wird in 
  1206.        einem Arbeitsgang kopiert und gelöscht,  die Zellenbegrenzungen  werden 
  1207.        an die Struktur des Zielarbeitsblattes angepaßt.  Der Block im Quellar-
  1208.        beitsblatt wird demarkiert.
  1209.  
  1210.  5. 9. Bearbeiten (CONTROL + W)
  1211.        Diese Funktion ist in dieser Programmversion noch nicht implementiert.
  1212.  
  1213.  6. DIE CURSORSTEUERUNG
  1214.  
  1215.  6. 1. Cursorsteuerung per Maus
  1216.        Es  gibt  zwei Möglichkeiten,  den Cursor per Maus  in  eine  bestimmte 
  1217.        sichtbare Zelle zu setzen :
  1218.        1. Man clickt einfach in die gewünschte Zelle.
  1219.        2. Zuerst clickt man den gewünschten Spaltenindex, dann den gewünschten 
  1220.           Zeilenindex an (oder auch umgekehrt).
  1221.  
  1222.  6. 2. Cursorsteuerung per Tastatur
  1223.  
  1224.        Legende :
  1225.        ~ ... mit Shifttaste
  1226.        ^ ... mit Controltaste
  1227.        l ... Cursortaste links
  1228.        r ... Cursortaste rechts
  1229.        o ... Cursortaste oben
  1230.        u ... Cursortaste unten
  1231.  
  1232.        Kombination :       Funktion :
  1233.        l                   Bewegt den Cursor um eine Zelle nach links.
  1234.        r                   Bewegt den Cursor um eine Zelle nach rechts.
  1235.        o                   Bewegt den Cursor um eine Zelle nach oben.
  1236.        u, Return           Bewegt den Cursor um eine Zelle nach unten.
  1237.  
  1238.        ~l                  Verschiebt den angezeigten Ausschnitt um eine Seite 
  1239.                            nach links.
  1240.        ~r                  Verschiebt den angezeigten Ausschnitt um eine Seite 
  1241.                            nach rechts.
  1242.        ~o                  Verschiebt den angezeigten Ausschnitt um eine Seite 
  1243.                            nach oben.
  1244.        ~u                  Verschiebt den angezeigten Ausschnitt um eine Seite 
  1245.                            nach unten.
  1246.  
  1247.        ^l                  Setzt den Cursor in die erste Spalte  des  Arbeits-
  1248.                            blattes.
  1249.        ^r                  Setzt den Cursor in die letzte Spalte des  Arbeits-
  1250.                            blattes.
  1251.        ^o                  Setzt  den Cursor in die erste Zeile  des  Arbeits-
  1252.                            blattes.
  1253.        ^u                  Setzt  den Cursor in die letzte Zeile des  Arbeits-
  1254.                            blattes.
  1255.  
  1256.        Clr/Home            Setzt den Cursor in die erste sichtbare Zelle links 
  1257.                            oben.
  1258.        ^Clr/Home           Setzt den Cursor in Zelle [1,1].
  1259.  
  1260.  7. WEITERE MAUSKOMMANDOS
  1261.  
  1262.  7. 1. Zelle kopieren
  1263.        Mit  Hilfe dieser Funktion kann man den Inhalt der Cursorzelle in  eine 
  1264.        andere  beliebige  sichtbare Zelle kopieren.  Dazu muß man   die  linke 
  1265.        SHIFT-Taste  drücken und die gewünschte Zielzelle gleichzeitig  anclic-
  1266.        ken.
  1267.  
  1268.  7. 2. Zelle verschieben
  1269.        Diese Funktion verschiebt den Inhalt der Cursorzelle in eine  beliebige 
  1270.        andere  sichtbare  Zelle,  d.h.  der Inhalt wird in  einem  Arbeitsgang 
  1271.        kopiert  und gelöscht.  Dies geschieht nach gleichzeitigem Drücken  der 
  1272.        rechten SHIFT-Taste und dem Anclicken der gewünschten Zielzelle.
  1273.  
  1274.  7. 3. Zelle löschen
  1275.        Diese  Funktion löscht bei gleichzeitigem Drücken  der  ALTERNATE-Taste 
  1276.        und dem Anclicken der gewünschten Zelle deren Inhalt.
  1277.  
  1278.  7. 4. Zelle durchrechnen
  1279.        Diese Funktion rechnet bei gleichzeitigem Drücken der CONTROL-Taste und 
  1280.        dem Anclicken der gewünschten Zelle deren Inhalt,  falls mathematischer 
  1281.        Natur, durch, speichert das Ergebnis und stellt dieses dar.
  1282.  
  1283.  8. TIP(S) & TRICK(S)
  1284.  
  1285.  8. 1. Arbeitsblattgröße verändern
  1286.        Sollte sich nach einiger Zeit herausstellen,  daß man sich beim Anlegen 
  1287.        des Arbeitsblattes bei dessen Dimensionen verschätzt hat,  so kann  die 
  1288.        Größe desselben folgendermaßen verändert werden :
  1289.  
  1290.        1. Man  legt  als  Zwischenspeicher  ein  neues  Arbeitsblatt  mit  den 
  1291.           gewünschten Dimensionen an.  Der Dateiname ist dabei völlig  belang-
  1292.           los,  das  Arbeitsblatt  wird  später  sowieso  nicht  unter  diesem 
  1293.           gespeichert.
  1294.        2. Man  schaltet  auf das 'mißratene' Arbeitsblatt  um,  und  definiert 
  1295.           dessen  Inhalt als Block.  Der Block muß auf alle Fälle in das  neue 
  1296.           Arbeitsblatt passen !
  1297.        3. Man  verschiebt oder kopiert diesen Block in das  neue  Arbeitsblatt 
  1298.           (s. Kopieren nach..., Verschieben nach...).
  1299.        4. Man  speichert  das  neue Arbeitsblatt unter  dem  Namen  des  alten 
  1300.           Arbeitsblattes.  Das neue Arbeitsblatt kann dann wieder  geschlossen 
  1301.           werden.
  1302.        5. Man  lädt  das Arbeitsblatt mit den neuen  Dimensionen  und  ersetzt 
  1303.           damit das alte Arbeitsblatt.
  1304.  
  1305.  9. FEHLER UND FEHLERMELDUNGEN
  1306.  
  1307.  9. 1. Allgemeines
  1308.        Sollte  während des Programmablaufs ein Fehler auftreten,  welcher  Art 
  1309.        auch immer,  so wird dieser in einer Alert-Box angezeigt. Die Funktion, 
  1310.        welche den Fehler ausgelöst hat, bricht die Ausführung ab.
  1311.  
  1312.  9. 2. Liste der Fehlermeldungen
  1313.         1   Keine Workstation mehr verfügbar.
  1314.         2   Fehler bei RSRC_LOAD.
  1315.               Das  Resource-File  ist nicht vorhanden oder es steht  zu  wenig 
  1316.               Arbeitsspeicher zur Verfügung.
  1317.         3   Das RSC-File ist defekt.
  1318.         4   Ungültige Eingabe.
  1319.         5   Kein Fenster mehr übrig.
  1320.         8   Keine CIA-Datei.
  1321.         9   Ungültige Versionsnummer.
  1322.               Es  wurde versucht,  Daten einer neueren Version als  dieser  zu 
  1323.               laden.
  1324.        10   Operand erwartet.
  1325.        11   Operator erwartet.
  1326.        12   Koordinaten erwartet.
  1327.        13   Bezeichner erwartet.
  1328.        14   Dateipfad erwartet.
  1329.        21   '(' erwartet.
  1330.        22   ')' erwartet.
  1331.        23   '[' erwartet.
  1332.        24   ']' erwartet.
  1333.        25   '{' erwartet.
  1334.        26   '}' erwartet.
  1335.        27   ':=' erwartet.
  1336.        28   Stringende erwartet.
  1337.        29   ',' erwartet.
  1338.        30   '..' erwartet.
  1339.        31   Hochkomma erwartet.
  1340.        40   Die Wurzelfunktion ist in R nur für Zahlen>=0 erklärt.
  1341.        41   Logarithmusfunktionen nur für Zahlen>0.
  1342.        42   Die  Basis zur Logarithmusberechnung muß größer 0 und  ungleich  1 
  1343.             sein.
  1344.        44   Die Division durch 0 ist nicht erklärt.
  1345.        45   Zur Berechnung der Standardabweichung werden  mind. 2 Werte  benö-
  1346.             tigt.
  1347.        46   Zugriff auf eine nicht definierte Zelle.
  1348.        47   Zugriff auf eine Zelle mit nicht-arithmetischen Inhalt.
  1349.        48   Zugriff auf eine Zelle mit nicht bestimmbaren Ergebnis.
  1350.               Der Inhalt der Zelle, auf die zugegegriffen werden soll, ist als 
  1351.               fehlerhaft  oder nicht bestimmbar gekennzeichnet (Anzeige von  * 
  1352.               ERROR  xx  *)  und die vorgegebene  Iterationstiefe  erlaubt  es 
  1353.               nicht, den Ausdruck noch einmal zu berechnen.
  1354.        49   Stacküberlauf.
  1355.               Der zu berechnende Ausdruck ist zu komplex.
  1356.        50   Arbeitsblatt ist zu klein.
  1357.               Dieser Fehler tritt auf,  wenn beim Kopieren,  Verschieben  oder 
  1358.               Laden von Blöcken oder beim Laden von CVS- oder DIF-Dateien  der 
  1359.               Cursor  so  positioniert wurde,  daß der zu  ladende  Block  das 
  1360.               Arbeitsblatt rechts und/oder unten sozusagen überlappen würde.
  1361.        51   Falscher Dateityp.
  1362.               Wird versucht,  eine Datei zu laden,  die zwar von CIA  angelegt 
  1363.               wurde,  jedoch  nicht dem erwarteten Typ (s bei  'Datenformate') 
  1364.               entspricht, so erscheint diese Meldung.
  1365.               HINWEIS :
  1366.               Die Extension des Dateinamens (z.B.  'CT', 'PST') hat nichts mit 
  1367.               dem  Dateityp zu tun,  sie erleichtert lediglich  die  Zuordnung 
  1368.               einer Datei zu einem Typ.  Die in dieser Anleitung vorgeschlage-
  1369.               nen Extensionen sind an sich völlig unverbindlich,  ihre Verwen-
  1370.               dung ist jedoch zu empfehlen, da CIA auch mit diesen arbeitet.
  1371.        52   Papierformat ist zu klein.
  1372.               Das  gewählte Papierformat ist so klein,  daß es  nicht  möglich 
  1373.               ist, auch nur eine Zelle in voller Breite und Höhe zu drucken.
  1374.        53   Drucken ohne Druckertreiber ist nicht möglich.
  1375.        54   Drucker ist OFF LINE geschaltet.
  1376.        55   Dieses Programm läuft nur in mittlerer oder hoher Auflösung.
  1377.        56   Block ist nicht definiert.
  1378.        57   String ist zu lang.
  1379.        58   Fehlerhafte CVS-Datei.
  1380.        59   Beim Durchrechnen ist ein/sind Fehler aufgetreten.
  1381.        60   Beim Nachrechnen ist ein/sind Fehler aufgetreten.
  1382.        61   Funktion ist nicht implementiert.
  1383.               CIA  besitzt  einige noch nicht  dokumentierte  Funktionen,  die 
  1384.               zwar  bereits eingegeben,  jedoch noch nicht  berechnet   werden 
  1385.               können.
  1386.        62   Nichts mehr gefunden.
  1387.        63   Bezeichner ist bereits definiert.
  1388.        64   Bezeichner ist nicht definiert.
  1389.        65   Unbekannter Operator.
  1390.        66   Unbekannte Funktion.
  1391.        67   Fehlerhafte DIF-Datei.
  1392.        68   Ausdruck ist zu lang.
  1393. 10. INTERNAS
  1394.  
  1395. 10. 1. Dateikennungen
  1396.        CIA speichert im Kopf einer jeden Datei eine Kennung,  d.h.  beim Laden 
  1397.        einer  Datei  kann erkannt werden,  ob diese wirklich von  CIA  erzeugt 
  1398.        worden ist und somit verarbeitet werden kann.
  1399.  
  1400. 10. 2. Versionsnummern
  1401.        Zusätzlich zur Kennung stehen im Kopf einer jeden Datei auch noch  zwei 
  1402.        Versionsnummern  :  Erstens  die  des Programms und  zweitens  die  des 
  1403.        Datenformats.  Mit deren Hilfe ist es möglich,  ältere Datenformate  zu 
  1404.        erkennen und automatisch zu konvertieren. Beim Versuch, Daten zu laden, 
  1405.        die  von einer neueren Programmversion als dieser  gespeichert  wurden, 
  1406.        kommt es zu einer Fehlermeldung.
  1407.  
  1408. 10. 3. Konfiguration und Programmstart
  1409.        CIA läuft in hoher und mittlerer Auflösung.  Das Programm kann aus  dem 
  1410.        Hauptverzeichnis oder aus einem Ordner gestartet werden.  Vor dem Start 
  1411.        sollten  mind.  250  KB Speicher zur Verfügung stehen.  Nach  dem  Pro-
  1412.        grammstart   werden   automatisch   der   erste    Druckerkonfiguration 
  1413.        (Extension  'CFG')  und  die erste  Datei  mit  Druckervoreinstellungen 
  1414.        (Extension 'PST'),  die im Hauptverzeichnis oder in dem Ordner, aus dem 
  1415.        das Programm gestartet wurde, gefunden werden, geladen.
  1416.  
  1417. 10. 4. Datenformate
  1418.  
  1419.        Header für alle Systemdateien :
  1420.        Jede Systemdatei (.CT,  .BLK,  .CFG, .PST) besitzt einen folgendermaßen 
  1421.        aufgebauten Header :
  1422.  
  1423.        1. String :  'CIA'
  1424.        2. Byte   :  Dateityp :
  1425.                       0=Arbeitsblatt (.CT)
  1426.                       1=Block (.BLK)
  1427.                       2=Druckerkonfiguration (.CFG)
  1428.                       3=Druckervoreinstellungen (.PST)
  1429.        3. Word   :  Programmversion (jetzt $110)
  1430.        4. Word   :  Datenformatversion (jetzt 5)
  1431.   
  1432.        Das Arbeitsblatt-Format :
  1433.        1. Word   :  Anzahl der Zellen in der Horizontalen
  1434.        2. Word   :  Anzahl der Zellen in der Vertikalen
  1435.        3. Word   :  Anzahl der Benennungen
  1436.        4. Word   :  Aktuelle Spalte
  1437.        5. Word   :  Aktuelle Zeile
  1438.        6. Word   :  Zahlendarstellung :
  1439.                       b0=0 => Ergebnisdarstellung
  1440.                       b0=1 => Ausdrucksdarstellung
  1441.                       b1=0 => Deutsche Zahlendarstellung
  1442.                       b1=1 => Amerikanische Zahlendarstellung
  1443.                       b2=0 => Vorzeichen vor dem Ergebnis ausgeben
  1444.                       b2=1 => Vorzeichen hinter dem Ergebnis ausgeben
  1445.        7. Word   :  Schriftgröße :
  1446.                       1= 6x 6 (Iconschrift)
  1447.                       2= 8x 8 (Standard-Color-Schrift)
  1448.                       3= 8x16 (Standard-Monochrom-Schrift)
  1449.                       4=16x16 (Riesenschrift)
  1450.        8. Word   :  Darzustellende Zellenbegrenzungen :
  1451.                       b0=1 => Vertikale Begrenzungen darstellen
  1452.                       b1=1 => Horizontale Begrenzungen darstellen
  1453.        9. Word   :  Nachberechnung-Automatik-Flag :
  1454.                        0=Automatik ist aus
  1455.                       -1=Automatik ist an
  1456.        10. Word  :  Bereich, in dem eine Nachberechnung erfolgen soll :
  1457.                       0=Arbeitsblatt
  1458.                       1=Block
  1459.                       2=Display
  1460.                       3=Spalte
  1461.                       4=Zeile
  1462.                       5=Zelle
  1463.        11. Word  :  Anzahl der Iterationen
  1464.        12. Word  :  Horizontaler Blockstart
  1465.        13. Word  :  Vertikaler Blockstart
  1466.        14. Word  :  Horizontales Blockende
  1467.        15. Word  :  Vertikales Blockende
  1468.   
  1469.        16. Long  :  Länge des folgenden Blocks,  in dem die Spaltenbreiten und 
  1470.                     die  Anzahl  der  Nachkommazellen  gespeichert  sind.  Die 
  1471.                     Anzahl  der Elemente entspricht der Anzahl der  Zellen  in 
  1472.                     der Horizontalen.
  1473.  
  1474.        AUFBAU EINES LISTENELEMENTS :
  1475.          1. Word   :  Spaltenbreite in Zeichen
  1476.          2. Word   :  Anzahl der Nachkommastellen
  1477.  
  1478.        17. Long  :  Länge  des folgenden Blocks,  in dem die  Zeilenhöhen  und 
  1479.                     Offsets  zur  Speicherverwaltung  gespeichert  sind.   Die 
  1480.                     Anzahl  der Elemente entspricht der Anzahl der  Zellen  in 
  1481.                     der Vertikalen.
  1482.  
  1483.        AUFBAU EINES LISTENELEMENTS :
  1484.          1. Word   :  Zeilenhöhe in Textzeilen.
  1485.          2. Long   :  Offset vom Blockstart zur ersten Zelle in dieser Zeile.
  1486.  
  1487.        18. Long  :  Länge des folgenden Blocks, in dem die eigentlichen Zellen 
  1488.                     gespeichert sind. Die Anzahl der Listenelemente entspricht 
  1489.                     der  Anzahl der Zellen.  In der Liste stehen  zuerst  alle 
  1490.                     Zellen der 1. Zeile, dann die der 2. Zeile, usw...
  1491.  
  1492.        AUFBAU EINES LISTENELEMENTS :
  1493.          1. Word   :  Länge des Listenelements einschließlich dieses Words.
  1494.          2. Word   :  Zellenflag :
  1495.                         b0-b8 : Unbenutzt
  1496.                         b9=1 => Fehler : Die Zelle enthält einen Ausdruck, der 
  1497.                                 nicht berechnet werden konnte.
  1498.                         b10=1=> Zelleninhalt ist geschützt
  1499.                         b11=1=> Zelleninhalt ist sichtbar
  1500.                         b12-b15 : Zellentyp :
  1501.                                     0=Leerzelle
  1502.                                     1=Ausdruck
  1503.                                     2=String
  1504.                                     3=Trennzelle
  1505.          3. Word   :  Zellenstatus :
  1506.                         b0-b1 : Unbenutzt
  1507.                         b2=1 => Vertikale Begrenzung rechts...
  1508.                         b3=1 => Horizontale Begrenzung unten...
  1509.                         b4=1 => Vertikale Begrenzung links...
  1510.                         b5=1 => Horizontale Begrenzung oben...
  1511.                                 ...ist vorhanden.
  1512.                         b6-b7 : Textausrichtung :
  1513.                                   0=linksbündig
  1514.                                   1=rechtsbündig
  1515.                                   2=zentriert
  1516.                                   3=formatiert
  1517.                         b8-b9 : Schriftfarbe (0-3)
  1518.                         b10-b15 : Schriftstil :
  1519.                                     b10=1 => fett
  1520.                                     b11=1 => hell
  1521.                                     b12=1 => kursiv
  1522.                                     b13=1 => unterstrichen
  1523.                                    (b14=1 => outlined
  1524.                                     b15=1 => schattiert)
  1525.  
  1526.          4. Word   :  x-Position der Zelle im AB (Basis 1)
  1527.          5. Word   :  y-Position der Zelle im AB (Basis 1)
  1528.          6. Word   :  Breite  der Zelle (inkl.  der Breiten aller nach  rechts 
  1529.                       überlappten Zellen !) in Zeichen
  1530.          7. Word   :  Höhe der Zelle in Textzeilen
  1531.  
  1532.          Dann folgt der vom Zellentyp abhängige Eintrag :
  1533.  
  1534.          Leerzelle  : Gar nix
  1535.          Ausdruck   : 1. double float (IEEE) : Ergebnis oder Fehlernummer
  1536.                       2. String : Der tokenisierte Ausdruck, nullterminiert
  1537.                       3. Falls notwendig, ein Nullbyte zum Auffüllen.
  1538.          String     : 1. String : Der String, nullterminiert
  1539.                       2. Falls notwendig, ein Nullbyte zum Auffüllen.
  1540.          Trennzelle : 1. Word   : Das Trennzeichen im Lo-Byte
  1541.  
  1542.        19. Long  :  Länge des folgenden Blocks, in dem die Benennungen gespei-
  1543.                     chert  sind.  Die Anzahl der Listenelemente enspricht  der 
  1544.                     der Benennungen.
  1545.  
  1546.        AUFBAU EINES LISTENELEMENTS :
  1547.          1. Word   :  Länge des Listenelements einschließlich dieses Words.
  1548.  
  1549.          Dann folgen die Bereichsgrenzen :
  1550.  
  1551.          2. Word   :  Zelle links oben, x-Koordinate
  1552.          3. Word   :  Zelle links oben, y-Koordinate
  1553.          4. Word   :  Zelle rechts unten, x-Koordinate
  1554.          5. Word   :  Zelle rechts unten, y-Koordinate
  1555.  
  1556.          Anschließend die eigentliche Benennung :
  1557.  
  1558.          1. String :  Die Benennung, nullterminiert
  1559.          2. Falls notwendig, ein Nullbyte zum Auffüllen.
  1560.  
  1561.  
  1562.        Das Block-Format :
  1563.        1. Word   :  Anzahl der Zellen in der Horizontalen
  1564.        2. Word   :  Anzahl der Zellen in der Vertikalen
  1565.  
  1566.        Anschließend  folgt  eine Liste,  die alle zum Block  gehörigen  Zellen 
  1567.        beinhaltet. Zum Aufbau eines Elements, s. oben.
  1568.  
  1569.        Das Konfigurations-Format :
  1570.        In dieser Datei steht eine Liste mit allen Druckersequenzen:
  1571.  
  1572.        AUFBAU EINES LISTENELEMENTS :
  1573.        1. Byte   :  Anzahl der folgenden Codes
  1574.        2. Byte   :  Ein  Zeichen,  für  das die folgende Sequenz  zum  Drucker 
  1575.                     geschickt werden soll.
  1576.  
  1577.        Eine Sequenz darf max. 254 Bytes lang sein.
  1578.  
  1579.        Das Druckervoreinstellungs-Format :
  1580.        1. Word   :  Port :
  1581.                       1=Centronics
  1582.                       2=RS 232
  1583.        2. Word   :  Papier :
  1584.                       1=Einzelpapier
  1585.                       2=Endlospapier
  1586.        3. Word   :  Schrift :
  1587.                       1=Standardschrift
  1588.                       2=NLQ-Schrift
  1589.                       3=Schmalschrift
  1590.        4. Word   :  Spaltenindizes :
  1591.                       0=Drucken
  1592.                      -1=Nicht drucken
  1593.        5. Word   :  Zeilenindizes :
  1594.                       0=Drucken
  1595.                      -1=Nicht drucken
  1596.        6. Word   :  Zeichen/Seite
  1597.        7. Word   :  Zeilen/Seite
  1598.        8. Word   :  Leerzeilen am Seitenende
  1599.        9. Word   :  Offset zum linken Rand
  1600.  
  1601.        Das DIF-Format :
  1602.        Die  einzelnen  Datenfelder  werden durch ein  Carriage  Return  ($0d), 
  1603.        gefolgt von einem Linefeed ($0a), voneinander getrennt.
  1604.  
  1605.        Das CVS-Format :
  1606.        Die  einzelnen  Datenfelder werden in  Hochkommata  eingeschlossen  ge-
  1607.        schrieben,  die  Felder  innerhalb eines Datensatzes werden  durch  ein 
  1608.        Komma voneinander getrennt.  Die Trennung der Datensätze erfolgt  durch 
  1609.        ein Carriage Return ($0d), gefolgt von einem Linefeed ($0a).
  1610.  
  1611. 11. LISTE DER FUNKTIONEN
  1612.  
  1613. 11. 1. Exponential- und Logarithmusfunktionen
  1614.  
  1615.        EXP(x)
  1616.        f(x)=ex
  1617.        Df=R, Wf=R+
  1618.        Berechnet die Potenz mit der Basis e und dem Exponenten x.
  1619.        EXP(1)=e≈2.7183
  1620.  
  1621.        LOG(a,b)
  1622.        fb(a)=logba
  1623.        a ∈ R+, b ∈ R+\{1}, Wf=R
  1624.        Berechnet den Logarithmus von a zur Basis b.
  1625.        LOG(32,2)=5
  1626.        LOG(PI()^-5,PI())=-5
  1627.  
  1628.        LD(a)=LOG(a,2)
  1629.        f(a)=ld a=log2a
  1630.        a ∈ R+, Wf=R
  1631.        Berechnet den dualen Logarithmus von a.
  1632.        LD(2)=1
  1633.        LD(32767)=15
  1634.  
  1635.        LG(a)=LOG(a,10)
  1636.        f(a)=lg a=log10a
  1637.        a ∈ R+, Wf=R
  1638.        Berechnet den dekadischen Logarithmus von a.
  1639.        LG(10)=1
  1640.        LG(1E+123)=123
  1641.  
  1642.        LN(a)=LOG(a,E())
  1643.        f(a)=ln a=logea
  1644.        a ∈ R+, Wf=R
  1645.        Berechnet den natürlichen Logarithmus von a.
  1646.        LN(1)=0
  1647.        LN(E())=1
  1648.        LN(E()^5)=5
  1649.  
  1650. 11. 2. Trigonometrische Funktionen
  1651.  
  1652.        ARC(a)
  1653.        f(α)=(α/180°)π
  1654.        Df=R, Wf=[0;2π[
  1655.        Rechnet den im Gradmaß angegebenen Winkel ins Bogenmaß um.
  1656.        ARC(90)=PI()/2≈1.5708
  1657.        ARC(180)=PI()≈3.1416
  1658.  
  1659.        DEG(x)
  1660.        f(x)=(x/π)180°
  1661.        Df=R, Wf=[0;359]
  1662.        Rechnet den im Bogenmaß angegebenen Winkel ins Gradmaß um.
  1663.        DEG(PI())=180
  1664.        DEG(2*PI())=360
  1665.  
  1666.        SIN(x)
  1667.        f(x)=sin x
  1668.        Df=R, Wf=[-1;+1]
  1669.        Berechnet den Sinus des im Bogenmaß angegebenen Winkels.
  1670.        SIN(PI())=0
  1671.        SIN(ARC(45))=SIN(PI()/4)≈0.7071
  1672.  
  1673.        COS(x)
  1674.        f(x)=cos x
  1675.        Df=R, Wf=[-1;+1]
  1676.        Berechnet den Cosinus des im Bogenmaß angegebenen Winkels.
  1677.        COS(PI())=-1
  1678.        COS(ARC(45))=COS(PI()/4)≈0.7071
  1679.  
  1680.        TAN(x)
  1681.        f(x)=tan x
  1682.        Df=R\{x|x=kπ+½π}, Wf=R
  1683.        Berechnet den Tangens des im Bogenmaß angegebenen Winkels.
  1684.        TAN(PI())=0
  1685.        TAN(ARC(135))=-1
  1686.  
  1687.        COT(x)
  1688.        f(x)=cot x
  1689.        Df=R\{x|x=kπ}, Wf=R
  1690.        Berechnet den Cotangens des im Bogenmaß angegebenen Winkels.
  1691.        COT(PI()/2)=1.42108547152E-14, cot(½π)=0 !
  1692.        COT(ARC(135))=-1
  1693.  
  1694.        ATN(x)
  1695.        f(x)=arctan x
  1696.        Df=R, Wf=]-½π;½π[
  1697.        Berechnet den Arcustangens des Arguments.
  1698.        ATN(TAN(ARC(45)))=ARC(45)=PI()/4≈0.7854
  1699.        DEG(ATN(-1))=-45
  1700.  
  1701. 11. 3. Sonstige mathematische Funktionen
  1702.  
  1703.        INT(x)
  1704.        f(x)=[x]
  1705.        Df=R, Wf=Z
  1706.        Rundet das Argument auf die nächstniedrigere ganze Zahl ab.
  1707.        INT(3.678989)=3
  1708.        INT(-3.678989)=-4
  1709.  
  1710.        ABS(x)
  1711.        f(x)=|x|
  1712.        Df=R, Wf=[0;+∞[
  1713.        Ermittelt den Betrag des Arguments :
  1714.        x<0 => |x|=-x
  1715.        x=0 => |x|=0
  1716.        x>0 => |x|=x
  1717.        ABS(5)=5
  1718.        ABS(-5)=5
  1719.  
  1720.        SQR(x)
  1721.        f(x)=√x
  1722.        Df=[0;+∞[, Wf=Df=[0;+∞[
  1723.        Berechnet die Quadratwurzel des Arguments.
  1724.        SQR(4)=2
  1725.        SQR(5^2)=5
  1726.  
  1727.        SGN(x)
  1728.        f(x)=sgn x
  1729.        Df=R, Wf={-1,0,1}
  1730.        Ermittelt das Vorzeichen des Arguments :
  1731.        x<0 => sgn x=-1
  1732.        x=0 => sgn x=0
  1733.        x>0 => sgn x=1     
  1734.        SGN(-5)=-1
  1735.        SGN(5)=1
  1736.  
  1737. 11. 4. Rundungsfunktionen
  1738.  
  1739.        INT(x)
  1740.        s. bei 10.3.
  1741.  
  1742.        FIX(x)
  1743.        Schneidet den Nachkommateil des Arguments ab.
  1744.        FIX(3.678989)=3
  1745.        FIX(-3.678989)=-3
  1746.  
  1747.        ROUND(x,n)
  1748.        Rundet das Argument x auf n Nachkommastellen auf.
  1749.        ROUND(1.79,1)=1.8
  1750.        ROUND(-1.79,1)=-1.8
  1751.  
  1752. 11. 5. Logische Funktionen
  1753.  
  1754.        Vorbemerkung :
  1755.        Der  Ergebnis  einer logischen Funktion kann nur  wahr  (TRUE=-1)  oder 
  1756.        falsch (FALSE=0) sein.
  1757.  
  1758.        ODD(x)
  1759.        Gibt TRUE zurück, falls das Argument eine ungerade Zahl ist.
  1760.        ODD(1)=-1
  1761.        ODD(2)=0
  1762.  
  1763.        EVEN(x)
  1764.        Gibt TRUE zurück, falls das Argument eine gerade Zahl ist.
  1765.        EVEN(1)=0
  1766.        EVEN(2)=-1
  1767.  
  1768. 11. 6. Konstanten
  1769.  
  1770.        E()
  1771.        Übergibt die Euler'sche Zahl.
  1772.        E()=2.7182818285
  1773.  
  1774.        PI()
  1775.        Übergibt die Kreiszahl.
  1776.        PI()=3.1415926536
  1777.  
  1778. 11. 7. Statistikfunktionen
  1779.  
  1780.        Vorbemerkung :
  1781.        Alle im folgenden aufgeführten Statistikfunktionen benötigen als  Argu-
  1782.        ment  den Bereich des Arbeitsblattes,  in dem gearbeitet  werden  soll. 
  1783.        Dieser  kann in der Form [x1,y1]..[x2,y2] oder mittels einer  Benennung 
  1784.        in geschwungenen Klammern angegeben werden, z.B. {TEILSUMMEN}.
  1785.        Nach  der  Bereichsangabe  kann  nach einem  Komma  auch  noch  ein  in 
  1786.        Hochkommata  eingeschlossener Dateiname folgen (s.  bei  Zelle  editie-
  1787.        ren/Zugriff auf andere Arbeitsblätter).
  1788.        Diese Angaben werden bei der folgenden Funktionsbeschreibung  allgemein 
  1789.        mit area abgekürzt.
  1790.        Beispiele :
  1791.        SUM([2,2]..[10,5])
  1792.        CNT({ERGEBNISSE},"C:\1989\FEBRUAR")
  1793.  
  1794.        AVG(area)
  1795.        Berechnet  den  Durchschnitt der im angegebenen  Bereich  gespeicherten 
  1796.        Ergebnisse.
  1797.  
  1798.        CNT(area)
  1799.        Ermittelt die Anzahl der Ausdrücke im angegebenen Bereich.
  1800.  
  1801.        MAX(area)
  1802.        Ermittelt das größte im angegebenen Bereich gespeicherte Ergebnis.
  1803.  
  1804.        MIN(area)
  1805.        Ermittelt das kleinste im angegebenen Bereich gespeicherte Ergebnis.
  1806.  
  1807.        SUM(area)
  1808.        Berechnet  die Summe aller im angegebenen Bereich gespeicherten  Ergeb-
  1809.        nisse.
  1810.  
  1811.        STD(area)
  1812.        Berechnet die Standardabweichung der im angegebenen Bereich gespeicher-
  1813.        ten Ergebnisse.
  1814.  
  1815.        VRZ(area)
  1816.        Berechnet  die Varianz der im angegebenen Bereich gespeicherten  Ergeb-
  1817.        nisse.
  1818.  
  1819.        HINWEIS :
  1820.        Bis  auf CNT(area) brechen alle Statistikfunktionen die Ausführung  mit 
  1821.        einer Fehlermeldung ab,  wenn sie auf einen Ausdruck treffen, der nicht 
  1822.        berechnet werden kann bzw. konnte.
  1823.  
  1824. 11. 8. Arbeitsblattfunktionen
  1825.  
  1826.        COL()
  1827.        Übergibt  die Spalte,  in der sich der Ausdruck,  der gerade  berechnet 
  1828.        wird, befindet.
  1829.  
  1830.        LINE()
  1831.        Übergibt  die Zeile,  in der sich der Ausdruck,  der  gerade  berechnet 
  1832.        wird, befindet.
  1833.  
  1834.        MAXCOL()
  1835.        Übergibt die Anzahl der Spalten.
  1836.  
  1837.        MAXLINE()
  1838.        Übergibt die Anzahl der Zeilen.
  1839.  
  1840. 11. 9. Sonstige nicht-mathematische Funktionen
  1841.  
  1842.        RND(x)
  1843.        Ermittelt  eine  Zufallszahl zwischen 0 (inklusive) und  dem  Wert  des 
  1844.        Arguments (exklusive).
  1845.  
  1846. 12. LISTE DER OPERATOREN
  1847.  
  1848. 12. 1. Logische Operatoren (Priorität 1)
  1849.  
  1850.        Vorbemerkung :
  1851.        Mit   logischen   Operatoren   werden   normalerweise    Wahrheitswerte 
  1852.        (TRUE=wahr=-1, FALSE=falsch=0) miteinander verknüpft. Als Ergebnis wird 
  1853.        wiederum  ein Wahrheitswert ausgegeben.  Im folgenden steht w für  wahr 
  1854.        und f für falsch.
  1855.  
  1856.        a AND b
  1857.        Konjunktion :
  1858.        (w AND w)=w
  1859.        (w AND f)=(f AND w)=(f AND f)=f
  1860.        Das Ergebnis von AND ist nur dann wahr, wenn beide Argumente wahr sind.
  1861.        (5==5 AND 0==0)=(w AND w)=w=-1
  1862.        (3>5 AND -1)=0=(f AND w)=f=0
  1863.  
  1864.        a OR b
  1865.        Disjunktion (nicht ausschließendes Oder) :
  1866.        (w OR w)=(w OR f)=(f OR w)=w
  1867.        (f OR f)=f
  1868.        Das  Ergebnis von OR ist nur dann falsch,  wenn beide Argumente  falsch 
  1869.        sind.
  1870.        (3>8 OR PI()==E())=(f OR f)=f=0
  1871.        (0 OR 0==0)=(f OR w)=w=-1
  1872.  
  1873.        a XOR b, a EOR b
  1874.        Exclusives (ausschließendes) Oder :
  1875.        (w XOR w)=(f XOR f)=f
  1876.        (w XOR f)=(f XOR w)=w
  1877.        Das Ergebnis von XOR ist dann falsch, wenn beide Argumente die gleichen 
  1878.        Wahrheitswerte haben.
  1879.        (5==5 XOR 5==5)=(w XOR w)=f=0
  1880.        (5<>5 XOR 5<>5)=(f XOR f)=f=0
  1881.  
  1882. 12. 2. Vergleichsoperatoren (Priorität 2)
  1883.  
  1884.        Vorbemerkung :
  1885.        Vergleichsoperatoren   liefern   als  Ergebnis   immer   Wahrheitswerte 
  1886.        (TRUE=wahr=-1, FALSE=falsch=0).
  1887.  
  1888.        a==b
  1889.        Das Ergebnis ist dann wahr, wenn a gleich b ist.
  1890.  
  1891.        a<=b, a=<b
  1892.        Das Ergebnis ist dann wahr, wenn a kleiner als oder gleich b ist.
  1893.  
  1894.        a>=b, a=>b
  1895.        Das Ergebnis ist dann wahr, wenn a größer als oder gleich b ist.
  1896.  
  1897.        a!=b, a<>b
  1898.        Das Ergebnis ist dann wahr, wenn a größer oder kleiner als b ist.
  1899.  
  1900.        a<b
  1901.        Das Ergebnis ist dann wahr, wenn a kleiner als b ist.
  1902.  
  1903.        a>b
  1904.        Das Ergebnis ist dann wahr, wenn a größer als b ist.
  1905.  
  1906. 12. 3. Addition und Subtraktion (Priorität 3)
  1907.  
  1908.        a+b
  1909.        Addition.
  1910.  
  1911.        a-b
  1912.        Subtraktion.
  1913.  
  1914. 12. 4. Multiplikation und Division (Priorität 4)
  1915.  
  1916.        a*b
  1917.        Multiplikation.
  1918.  
  1919.        a/b
  1920.        Division. b darf nicht Null sein.
  1921.  
  1922.        a\b
  1923.        Ganzzahldivision. b darf nicht Null sein.
  1924.        Es gilt : (a\b)=INT(a/b).
  1925.  
  1926.        a MOD b
  1927.        Berechnet den Rest der Ganzzahldivision a\b. b darf nicht Null sein. Es 
  1928.        gilt : (a MOD b)=a-(a\b)*b.
  1929.  
  1930. 12. 5. Potenzierung (Priorität 5)
  1931.  
  1932.        a^b
  1933.  
  1934.